PHP中实现链式操作的方法有哪些

  介绍

这篇文章给大家介绍PHP中实现链式操作的方法有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

在PHP中有很多字符串函数,例如要先过滤字符串收尾的空格,再求出其长度,一般的写法是:

strlen(修剪(str)美元)

如果要实现类似js中的链式操作,比如像下面这样应该怎么写?

str→美元削减()→strlen ()

下面分别用三种方式来实现:

<强>方法一,使用魔法函数__call结合call_user_func来实现

<强>思想:首先定义一个字符串类StringHelper,构造函数直接赋值价值,然后链式调用修剪()和strlen()函数,通过在调用的魔法函数__call()中使用call_user_func来处理调用关系,实现如下:

& lt; PHP ?   class  StringHelper    {   private 才能;美元价值;   function 才能;__construct(美元值)   {才能   ,,,这个→美元value =,美元价值;   ,,}   function 才能;__call(函数,美元,美元args) {   ,,,这个→美元value =, call_user_func(函数,美元,这→美元价值,,args[0]美元);   ,,,return 美元;   ,,}   function 才能;strlen (), {   ,,,return  strlen ($ this→价值);   ,,}   }   $ str =, new  StringHelper (“, sd  f  0“);   echo  str→美元削减(& # 39;0 & # 39;)→strlen ();

终端执行脚本:

php  test.php    8

<>强方法二、使用魔法函数__call结合中的call_user_func_array来实现

& lt; php ?   class  StringHelper    {   private 才能;美元价值;   function 才能;__construct(美元值)   {才能   ,,,这个→美元value =,美元价值;   ,,}   function 才能;__call(函数,美元,美元args) {   函数,,,args美元,这→美元值);   ,,,这个→美元value =,中的call_user_func_array(函数美元,,args);   ,,,return 美元;   ,,}   function 才能;strlen (), {   ,,,return  strlen ($ this→价值);   ,,}   }   $ str =, new  StringHelper (“, sd  f  0“);   echo  str→美元削减(& # 39;0 & # 39;)→strlen ();

<强>说明:

函数(数组、value1 value2, value3…)

<代码>函数()函数用于向数组插入新元素。新数组的值将被插入到数组的开头。

<代码> call_user_func() 和<代码>中的call_user_func_array>

<强>方法三,不使用魔法函数__call来实现

只需要修改<代码> _call() 为<代码>修剪()函数即可:

public  function 削减(t)美元   {   这→美元才能value =,修剪($ this→价值,,$ t);   return 才能;$;   }

关于PHP中实现链式操作的方法有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

PHP中实现链式操作的方法有哪些