主页 > 知识库 > PHP实现链式操作的三种方法详解

PHP实现链式操作的三种方法详解

热门标签:全国各省地图标注点 400电话申请办理 百度地图标注类型是酒店 网络电话400申请 随州销售电销机器人公司 商丘外呼系统好处 周口网络回拨外呼系统 福建高频外呼防封系统哪家好 外呼系统人工客服

本文实例讲述了PHP实现链式操作的三种方法。分享给大家供大家参考,具体如下:

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

strlen(trim($str))

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

$str->trim()->strlen()

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

方法一、使用魔法函数__call结合call_user_func来实现

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

?php
class StringHelper 
{
  private $value;
  function __construct($value)
  {
    $this->value = $value;
  }
  function __call($function, $args){
    $this->value = call_user_func($function, $this->value, $args[0]);
    return $this;
  }
  function strlen() {
    return strlen($this->value);
  }
}
$str = new StringHelper(" sd f 0");
echo $str->trim('0')->strlen();

终端执行脚本:

php test.php 
8

方法二、使用魔法函数__call结合call_user_func_array来实现

?php
class StringHelper 
{
  private $value;
  function __construct($value)
  {
    $this->value = $value;
  }
  function __call($function, $args){
    array_unshift($args, $this->value);
    $this->value = call_user_func_array($function, $args);
    return $this;
  }
  function strlen() {
    return strlen($this->value);
  }
}
$str = new StringHelper(" sd f 0");
echo $str->trim('0')->strlen();

说明:

array_unshift(array,value1,value2,value3...)

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

call_user_func()call_user_func_array都是动态调用函数的方法,区别在于参数的传递方式不同。

方法三、不使用魔法函数__call来实现

只需要修改_call()trim()函数即可:

public function trim($t)
{
  $this->value = trim($this->value, $t);
  return $this;
}

重点在于,返回$this指针,方便调用后者函数。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:
  • PHP实现的连贯操作、链式操作实例
  • PHP简单数据库操作类实例【支持增删改查及链式操作】
  • PHP三种方式实现链式操作详解
  • PHP对象链式操作实现原理分析
  • PHP实现链式操作的核心思想
  • PHP实现链式操作的原理详解
  • php类自动装载、链式操作、魔术方法实现代码
  • PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
  • thinkPHP5框架数据库连贯操作之cache()用法分析
  • thinkphp连贯操作实例分析
  • php链式操作的实现方式分析

标签:乐山 六安 南宁 十堰 定西 海南 佛山 迪庆

巨人网络通讯声明:本文标题《PHP实现链式操作的三种方法详解》,本文关键词  PHP,实现,链式,操作,的,三种,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《PHP实现链式操作的三种方法详解》相关的同类信息!
  • 本页收集关于PHP实现链式操作的三种方法详解的相关信息资讯供网民参考!
  • 推荐文章