正在php中有不少字符串函数,例如要先过滤字符串收尾的空格,再求出其长度,普通的写法是:

strlen(trim($str))

假如要完成相似js中的链式操作,比方像上面这样应该怎样写?

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

上面辨别用三种形式来完成:

办法1、应用邪术函数__call连系call_user_func来完成

思维:起首界说一个字符串类StringHelper,结构函数间接赋值value,而后链式挪用trim()以及strlen()函数,经过正在挪用的邪术函数__call()中应用call_user_func来解决挪用关系,完成以下:

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

办法2、应用邪术函数__call连系call_user_func_array来完成

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都是静态挪用函数的办法,区分正在于参数的通报形式没有同。

办法3、没有应用邪术函数__call来完成

只要要修正_call()为trim()函数便可:

public function trim($t)

{

$this->value = trim($this->value, $t);

return $this;

}

重点正在于,前往$this指针,不便挪用后者函数。

保举:《PHP视频教程》

以上就是PHP三种形式完成链式操作的具体内容,更多请存眷资源魔其它相干文章!

本网站(www.ziyuanmo.com)刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等均由用户发表。

虚拟收费资源付款后概不退款,请考虑在三后支付!如有侵权可联系邮箱:ziyuanmo@admin.com,会在第一时间解决!

资源猫 » PHP三种方式实现链式操作-php教程

分享到:

php支持链式操作,PHP三种方式实现链式操作-php教程相关推荐

  1. 最近总结了串口(COM)读写操作的三种方式

    最近总结了串口(COM)读写操作的三种方式: 第1种方式是采用微软在.NET2.0推出了一个串口控件,SerialPort类,但必须是.NET2.0才可以 第2种方式是用API写串口通信,虽然难度高, ...

  2. Java操作Excel三种方式POI、Hutool、EasyExcel

    Java操作Excel三种方式POI.Hutool.EasyExcel 1. Java操作Excel概述 1.1 Excel需求概述 1.2 Excel操作三种方式对比 2. ApachePOIExc ...

  3. 创建一对多表结构实例 /操作的三种方式

    例 1.注册App01  完成各项配置 2. 写完后自动生成一个id自增列(主键) 如果不想生成 自己写 创建两张表 3.执行创建语句 (其中还进行了一个小修改) 4.按照之前的方法 打开数据库 并输 ...

  4. php 声音文件链 处理,PHP 三种方式实现链式操作

    在php中有很多字符串函数,例如要先过滤字符串收尾的空格,再求出其长度,一般的写法是: strlen(trim($str)) 如果要实现类似js中的链式操作,比如像下面这样应该怎么写? $str-&g ...

  5. 读取Java文件到byte数组的三种方式及Java文件操作大全(包括文件加密,String加密)

    读取Java文件到byte数组的三种方式 package zs;import java.io.BufferedInputStream; import java.io.ByteArrayOutputSt ...

  6. Android 延时操作的三种方式

    在Android开发中我们可能会有延时执行某个操作的需求,例如我们启动应用的时候,一开始呈现的是引导页面,3秒后进入主界面,这就是一个延时操作. 下面是实现延时操作的三种方法: 一.使用线程的休眠实现 ...

  7. Java 设计模式之责任链模式实现的三种方式

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 The worst way to miss someone is to be ...

  8. 【Dubbo】Dubbo 多协议支持、服务监控的三种方式

    1.Dubbo多协议支持 Dubbo 对于 RPC 通信协议的支持,不仅仅是原生的 Dubbo 协议,它还围绕着 rmi.hessian.http.webservice.thrift.rest 等协议 ...

  9. 元素等待的三种方式(隐式等待、显示等待、强制等待)

    目录 隐式等待 显示等待 强制等待 如何选用等待方式 隐式等待 # 隐式等待:设置一个超时时间,在这个时间内,不断的寻找元素,超时找不到就抛出异常 driver.implicitly_wait(10) ...

最新文章

  1. 限流10万QPS、跨域、过滤器、令牌桶算法-网关Gateway内容都在这儿
  2. 原生JS上传图片接收服务器端图片并且显示图片(主要描述blob类型)
  3. SOA架构下的人事信息管理系统的构建与分析
  4. 人工神经网络——【BP】反向传播算法证明
  5. iSensor APP 之 摄像头调试 OV3640 OV2640 MT9d112
  6. JAVA出现空指针异常(初学者)
  7. 公钥 私钥_公钥 私钥 签名 验签 说的啥?
  8. matlab提取线条,请问如何将图片中的红色激光线条给提取出来啊,有没有大佬救救孩子,贴出代码给瞅瞅啊!谢谢!...
  9. Java基础算法看这一篇就够了,简单全面一发入魂
  10. js打开新窗口与页面跳转
  11. fftshift详解
  12. 手机号码检测开通微信查询方法
  13. KEIL5 C51软件安装详细图文教程
  14. 【PI调节】对PI调节的一些认识
  15. 芯片架构--四大处理器架构
  16. oracle rac 各日志,oracle rac 日志体系结构!
  17. 职场管理(3)——提取公积金需要满足哪些条件?你还不知道吧
  18. Cadence Allegro颜色显示设置图文教程及视频演示
  19. Bilibili到底有多少御坂妹?(二)
  20. 在线问诊配药的背后,看这家“数字化医院”如何守护数据流动安全

热门文章

  1. 基于51单片机制作的蓝牙小车
  2. linux pcap文件格式,pcap文件格式
  3. 图片使用内存法进行浮雕处理_无锡浮雕景观雕塑制作安装
  4. 51proteus仿真:生成方波、正弦波、锯齿波和三角波
  5. 8086+DAC0832产生方波、三角波及正弦波波形Proteus仿真
  6. 车万翔:ChatGPT时代,NLPer 的危与机
  7. 联想G510笔记本电脑换屏——操作步骤详解
  8. 太康一高2021高考成绩查询,2021年太康县高考状元成绩分数,太康县历年高考状元名单...
  9. f12键修改网页html,问如何通过F12键来快捷的修改网页
  10. PreparedStatement和Statement的区别