介绍
这篇文章给大家介绍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中实现链式操作的方法有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。