PHP 方法链 - 反射?

2024-03-04

是否可以反思方法调用链来确定您处于调用链中的哪个点? 至少,是否可以辨别一个方法是否是链中的最后一个调用?

$instance->method1()->method2()->method3()->method4()

是否可以使用返回对象实例的属性来执行相同的操作?

$instances->property1->property2->property3->property4

如果您调用的所有方法都返回same对象来创建流畅的接口(而不是将不同的对象链接在一起),在对象本身中记录方法调用应该是相当简单的。

eg:

class Eg {
    protected $_callStack = array();

    public function f1()
    {
        $this->_callStack[] = __METHOD__;
        // other work
    }

    public function f2()
    {
        $this->_callStack[] = __METHOD__;
        // other work
    }

    public function getCallStack()
    {
        return $this->_callStack;
    }
}

然后像这样链接调用

$a = new Eg;
$a->f1()->f2()->f1();

会留下像这样的调用堆栈: 数组('f1','f2','f1');

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 方法链 - 反射? 的相关文章

  • ZipArchive 提取 - 单个文件

    我有以下代码 ipaFile path file ipa iconFilePath Payload myapp app email protected cdn cgi l email protection the pathway to my
  • 使用php在html页面中显示bbcode

    我已经有一个 bbcode 字符串 mybbcode b Hello word b 使用 php 我想在 html 页面中以 html 格式显示它 例如 div gt b hello word b div 基本上其他人已经对你说过了 但是如
  • 在 Drupal 中选择性地删除页面的样式表

    我正在尝试为首页制作不同的布局 在此过程中 我声明了名为 front page css 和 page front tpl php 的新样式表 我正在使用加载responsive sidebar css 的 Zen 子主题 我想删除 resp
  • TCPDF / FPDI 可以接受 PDF 作为字符串吗?

    是否可以将 TCPDF 或 FPDI PDF 作为字符串提供 我有一个传入的 PDF 数组作为字符串 但无法写入磁盘 我在文档中找不到与此相关的任何内容 如果没有 是否有一种有效的方法来从内存或作为对象存储 读取这些 PDF 将它们喂给 F
  • 打印一个模式以显示最多 5 行 5 列的数字,例如 5 4 3 2 1 和下一行 4 3 2 1 5 直到第 5 行

    这是一个正方形图案 每行有 5 列 共有 5 行 图案如下所示 5 4 3 2 1 4 3 2 1 5 3 2 1 5 4 2 1 5 4 3 1 5 4 3 2 我的代码如下以获得模式 但当计数器达到 1 并显示在相应的列值中时 我无法重
  • $_REQUEST、$_GET、$_POST 哪一个最快?

    这些代码中哪一个会更快 temp REQUEST s or if isset GET s temp GET s else temp POST s REQUEST http php net manual en reserved variabl
  • 限制分页页数

    objConnect mysql connect localhost root or die mysql error objDB mysql select db Test strSQL SELECT FROM UserAddedRecord
  • 如何在 Laravel 5 中的视图模板上显示会话数据

    我正在尝试在 Laravel 5 中的视图模板上显示会话数据 但是它似乎没有显示任何内容 这是我用来设置会话的代码 Session set bookingConfirmed BookingDates where id Session get
  • 用PHP动态生成二维码[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在我的网站上生成二维码 他们所要做的就是在其中包含一个 URL 我网站上的变量将提供该 URL
  • PHP 中的抽象类是什么?

    PHP 中的抽象类是什么 如何使用 抽象类是至少包含一个抽象方法的类 该方法中没有任何实际代码 只有名称和参数 并且已被标记为 抽象 这样做的目的是提供一种模板来继承并强制继承类实现抽象方法 因此 抽象类是介于常规类和纯接口之间的东西 此外
  • 让用户渲染自己的 SVG 文件的安全隐患

    我计划让网站用户上传他们自己的 SVG 文档并使用inkscape or svg2pdf 用户要么未经身份验证 要么经历一个简单的注册过程 所以我预计会有一些黑客尝试 我可以采取哪些过滤措施来最大程度地减少安全威胁 Inkscape 似乎并
  • 无法显示由 Fine-uploader 上传到 Amazon s3 的图像

    我现在尝试设置fineuploader s3以显示在aws服务器上成功上传的文件的图像 如示例页面上所做的那样 http fineuploader com s3 demo http fineuploader com s3 demo 我 仍然
  • PHP别名@函数

    我是 PHP 新手 看到一些使用 前缀调用函数 如 mysql ping 的示例 我感到很困惑 它是做什么用的 谷歌搜索 搜索没有太大帮助 因为 被丢弃并且 别名 不是足够好的关键字 抑制错误 警告和通知 如果你用自定义的方式补充它 你可以
  • 如何在 WordPress/WooCommerce 3+ 中向评论表单添加自定义字段

    我正在尝试在产品评论中添加 电话 字段 WooCommerce 3 针对未注册用户 来宾 电话号码只能由管理员在管理面板中看到 电话字段需要填写 Required 我尝试了这段代码 但这不起作用 function true phone nu
  • SVG 转 JPG / PNG

    有没有工作模块可以convert a SVG image into像素格式如JPEG or PNG 看看蜡染工具包 具体来说是光栅化器 http xmlgraphics apache org batik tools rasterizer h
  • phpstorm xdebug 与 symfony2 项目

    我正在尝试使用 xdebug 和 phpstorm 调试 symfony2 应用程序 我的本地开发环境是Ubuntu 14 04 with apache2 Xdebug版本是2 2 7 我在另一个 php 不是 symfony2 项目上使用
  • Java 中通用方法参数的 getClass()

    以下 Java 方法无法编译
  • Heredoc:常用的“EOT”实际上是什么意思?

    PHP s 定界例子 http www php net manual en language types string php language types string syntax heredoc似乎总是使用 EOT 有时是 EOD 作
  • 一个类中有多个具有相同参数类型的方法

    我知道 至少已经有了关于这个主题的一个问题 https stackoverflow com questions 5561436 can two java methods have same name with different retur
  • 使用“AND”表达式构建动态 SQL,而不混淆嵌套条件?

    总的来说 我对 php 和编码相当陌生 我有一系列条件需要测试它们是否已设置 它们是 option1 option2 option3 if isset option1 if isset option2 if isset option3 qu

随机推荐