返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php实现链式操作的方法
  • 216
分享到

php实现链式操作的方法

2023-06-15 07:06:47 216人浏览 八月长安
摘要

这篇文章主要介绍PHP实现链式操作的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php实现链式操作的方法:1、使用魔法函数“__call”结合“call_user_func”来实现;2、使用魔法函数“__cal

这篇文章主要介绍PHP实现链式操作的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

php实现链式操作的方法:1、使用魔法函数“__call”结合“call_user_func”来实现;2、使用魔法函数“__call”结合“call_user_func_array”来实现;3、利用trim()函数来实现。

教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

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

strlen(trim($str))

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

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

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

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

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

<?phpclass 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来实现

<?phpclass 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,利用trim()函数来实现

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

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

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

以上是“php实现链式操作的方法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网PHP编程频道!

--结束END--

本文标题: php实现链式操作的方法

本文链接: https://lsjlt.com/news/278525.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • php实现链式操作的方法
    这篇文章主要介绍php实现链式操作的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php实现链式操作的方法:1、使用魔法函数“__call”结合“call_user_func”来实现;2、使用魔法函数“__cal...
    99+
    2023-06-15
  • php链式操作mysql数据库的方法是什么
    本篇内容介绍了“php链式操作mysql数据库的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!封装类常用操作使用示例// ...
    99+
    2023-07-05
  • jQuery如何实现链式操作
    小编给大家分享一下jQuery如何实现链式操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!链式操作jQuery实现方法的链式操...
    99+
    2024-04-02
  • js实现封装jQuery的简单方法与链式操作详解
    目录1. 实现$(".box1").click( )方法 2. 实现$("div").click( )方法 3. 考虑$( )中参数的三种情况 4. 实现jq中的on方法 5. 实现...
    99+
    2024-04-02
  • PHP实现链表的方法
    这篇文章主要介绍了PHP实现链表的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针...
    99+
    2023-06-15
  • Java实现单链表增删改查的操作方法
    这篇文章主要介绍了Java实现单链表增删改查的操作方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、新建学生节点类Stu_Node节点包含:学号:int num;姓名:S...
    99+
    2023-06-14
  • PHP实现数组差集操作的方法
    标题:PHP实现数组差集操作的方法 在PHP中,数组是一种非常常用的数据结构,它可以帮助我们存储和操作多个元素。在实际开发中,有时候我们需要对数组进行一些操作,比如取两个数组的差集。本...
    99+
    2024-03-13
    php 数组 差集
  • ​​​​​​​C语言实现单链表基本操作方法
    目录存储结构基本功能头插法创建单链表尾插法创建单链表获取指定位置的元素在指定位置插入元素删除指定位置的元素获取单链表的长度合并两个非递减的单链表晴链表遍历打印单链表附上完整代码存储结...
    99+
    2024-04-02
  • Java实现单链表的操作
    本文实例为大家分享了Java实现单链表的基本操作,供大家参考,具体内容如下 顺序表:物理上逻辑上都连续;链表:物理上不一定连续,逻辑上一定连续的。 链表的概念及结构 概念:连表示一种...
    99+
    2024-04-02
  • Go语言中的Slice链式操作方法是什么
    今天小编给大家分享一下Go语言中的Slice链式操作方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。示例首先模拟一个...
    99+
    2023-07-05
  • PHP中信息格式化操作的方法
    这篇文章主要介绍“PHP中信息格式化操作的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PHP中信息格式化操作的方法”文章能帮助大家解决问题。格式化//&nbs...
    99+
    2024-04-02
  • python 链接和操作 memcache方法
    1,打开memcached服务 memcached -m 10 -p 12000 2,使用python-memcached模块,进行简单的链接和存取数据 import memcache m...
    99+
    2022-06-04
    操作 链接 方法
  • PHP操作redis的两种方式
    随着redis使用越来越广泛,各种应用系统几乎都会嵌入redis。当然,PHP也不例外。在我接触到的项目中,主要是使用redis作为缓存服务器。但是对于PHP来说,它本身并不支持redis。所以说这里我...
    99+
    2024-02-27
  • 如何使用PHP递归实现链表的反转操作
    链表是一种非常常见的数据结构,是由一系列节点组成的集合,每个节点包含一个数据项和指向下一个节点的指针。链表可以用来实现栈、队列、哈希表等数据结构,并且在算法题中也常常遇到。在许多算法问题中,需要对链表进行反转操作。反转链表的基本思路是将链表...
    99+
    2023-05-14
    php
  • 怎么使用PHP递归实现链表的反转操作
    本文小编为大家详细介绍“怎么使用PHP递归实现链表的反转操作”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用PHP递归实现链表的反转操作”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。实现方法在递归反转链表...
    99+
    2023-07-05
  • NodeJS链接MySql数据库的操作方法
    如下所示: //1.用npm命令安装mysql模块 npm install mysql //2.js文件中引入mysql模块 const mysqlModule = require('mysql'); //...
    99+
    2022-06-04
    操作方法 链接 数据库
  • C#操作文本文件的实现方式
    本篇内容主要讲解“C#操作文本文件的实现方式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#操作文本文件的实现方式”吧!C#操作文本文件是如何实现的呢?让我们开始讲述吧:using ...
    99+
    2023-06-17
  • react中的DOM操作的实现方法
    本篇内容介绍了“react中的DOM操作的实现方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录前面的话使用场景ref【HTML元素】【...
    99+
    2023-06-20
  • Java实现单链表基础操作
    关于链表 链表是有序的列表链表是以节点的方式来存储每个节点包含data域,next域(指向下一个节点)分带头节点的链表和没有头节点的链表 定义一个节点: package linke...
    99+
    2024-04-02
  • C++中怎么实现链表操作
    C++中怎么实现链表操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C++链表操作代码示例:// linklist.cpp : 定义控制台应用程...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作