php支持链式操作,PHP三种方式实现链式操作-php教程
正在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教程相关推荐
- 最近总结了串口(COM)读写操作的三种方式
最近总结了串口(COM)读写操作的三种方式: 第1种方式是采用微软在.NET2.0推出了一个串口控件,SerialPort类,但必须是.NET2.0才可以 第2种方式是用API写串口通信,虽然难度高, ...
- Java操作Excel三种方式POI、Hutool、EasyExcel
Java操作Excel三种方式POI.Hutool.EasyExcel 1. Java操作Excel概述 1.1 Excel需求概述 1.2 Excel操作三种方式对比 2. ApachePOIExc ...
- 创建一对多表结构实例 /操作的三种方式
例 1.注册App01 完成各项配置 2. 写完后自动生成一个id自增列(主键) 如果不想生成 自己写 创建两张表 3.执行创建语句 (其中还进行了一个小修改) 4.按照之前的方法 打开数据库 并输 ...
- php 声音文件链 处理,PHP 三种方式实现链式操作
在php中有很多字符串函数,例如要先过滤字符串收尾的空格,再求出其长度,一般的写法是: strlen(trim($str)) 如果要实现类似js中的链式操作,比如像下面这样应该怎么写? $str-&g ...
- 读取Java文件到byte数组的三种方式及Java文件操作大全(包括文件加密,String加密)
读取Java文件到byte数组的三种方式 package zs;import java.io.BufferedInputStream; import java.io.ByteArrayOutputSt ...
- Android 延时操作的三种方式
在Android开发中我们可能会有延时执行某个操作的需求,例如我们启动应用的时候,一开始呈现的是引导页面,3秒后进入主界面,这就是一个延时操作. 下面是实现延时操作的三种方法: 一.使用线程的休眠实现 ...
- Java 设计模式之责任链模式实现的三种方式
点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 The worst way to miss someone is to be ...
- 【Dubbo】Dubbo 多协议支持、服务监控的三种方式
1.Dubbo多协议支持 Dubbo 对于 RPC 通信协议的支持,不仅仅是原生的 Dubbo 协议,它还围绕着 rmi.hessian.http.webservice.thrift.rest 等协议 ...
- 元素等待的三种方式(隐式等待、显示等待、强制等待)
目录 隐式等待 显示等待 强制等待 如何选用等待方式 隐式等待 # 隐式等待:设置一个超时时间,在这个时间内,不断的寻找元素,超时找不到就抛出异常 driver.implicitly_wait(10) ...
最新文章
- 限流10万QPS、跨域、过滤器、令牌桶算法-网关Gateway内容都在这儿
- 原生JS上传图片接收服务器端图片并且显示图片(主要描述blob类型)
- SOA架构下的人事信息管理系统的构建与分析
- 人工神经网络——【BP】反向传播算法证明
- iSensor APP 之 摄像头调试 OV3640 OV2640 MT9d112
- JAVA出现空指针异常(初学者)
- 公钥 私钥_公钥 私钥 签名 验签 说的啥?
- matlab提取线条,请问如何将图片中的红色激光线条给提取出来啊,有没有大佬救救孩子,贴出代码给瞅瞅啊!谢谢!...
- Java基础算法看这一篇就够了,简单全面一发入魂
- js打开新窗口与页面跳转
- fftshift详解
- 手机号码检测开通微信查询方法
- KEIL5 C51软件安装详细图文教程
- 【PI调节】对PI调节的一些认识
- 芯片架构--四大处理器架构
- oracle rac 各日志,oracle rac 日志体系结构!
- 职场管理(3)——提取公积金需要满足哪些条件?你还不知道吧
- Cadence Allegro颜色显示设置图文教程及视频演示
- Bilibili到底有多少御坂妹?(二)
- 在线问诊配药的背后,看这家“数字化医院”如何守护数据流动安全
热门文章
- 基于51单片机制作的蓝牙小车
- linux pcap文件格式,pcap文件格式
- 图片使用内存法进行浮雕处理_无锡浮雕景观雕塑制作安装
- 51proteus仿真:生成方波、正弦波、锯齿波和三角波
- 8086+DAC0832产生方波、三角波及正弦波波形Proteus仿真
- 车万翔:ChatGPT时代,NLPer 的危与机
- 联想G510笔记本电脑换屏——操作步骤详解
- 太康一高2021高考成绩查询,2021年太康县高考状元成绩分数,太康县历年高考状元名单...
- f12键修改网页html,问如何通过F12键来快捷的修改网页
- PreparedStatement和Statement的区别