<legend id='60wbU'><style id='60wbU'><dir id='60wbU'><q id='60wbU'></q></dir></style></legend>

<small id='60wbU'></small><noframes id='60wbU'>

  • <i id='60wbU'><tr id='60wbU'><dt id='60wbU'><q id='60wbU'><span id='60wbU'><b id='60wbU'><form id='60wbU'><ins id='60wbU'></ins><ul id='60wbU'></ul><sub id='60wbU'></sub></form><legend id='60wbU'></legend><bdo id='60wbU'><pre id='60wbU'><center id='60wbU'></center></pre></bdo></b><th id='60wbU'></th></span></q></dt></tr></i><div id='60wbU'><tfoot id='60wbU'></tfoot><dl id='60wbU'><fieldset id='60wbU'></fieldset></dl></div>
  • <tfoot id='60wbU'></tfoot>
    • <bdo id='60wbU'></bdo><ul id='60wbU'></ul>

        如何在新创建的对象上链接方法?

        How to chain method on a newly created object?(如何在新创建的对象上链接方法?)

        1. <tfoot id='kKi5J'></tfoot>

            <legend id='kKi5J'><style id='kKi5J'><dir id='kKi5J'><q id='kKi5J'></q></dir></style></legend>

            <small id='kKi5J'></small><noframes id='kKi5J'>

              <tbody id='kKi5J'></tbody>
              <bdo id='kKi5J'></bdo><ul id='kKi5J'></ul>
              <i id='kKi5J'><tr id='kKi5J'><dt id='kKi5J'><q id='kKi5J'><span id='kKi5J'><b id='kKi5J'><form id='kKi5J'><ins id='kKi5J'></ins><ul id='kKi5J'></ul><sub id='kKi5J'></sub></form><legend id='kKi5J'></legend><bdo id='kKi5J'><pre id='kKi5J'><center id='kKi5J'></center></pre></bdo></b><th id='kKi5J'></th></span></q></dt></tr></i><div id='kKi5J'><tfoot id='kKi5J'></tfoot><dl id='kKi5J'><fieldset id='kKi5J'></fieldset></dl></div>

                1. 本文介绍了如何在新创建的对象上链接方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我想知道是否有办法在 PHP 中为新创建的对象链接方法?

                  I would like to know whether there's a way to chain methods on a newly created object in PHP?

                  类似于:

                  class Foo {
                      public function xyz() { ... return $this; }
                  }
                  
                  $my_foo = new Foo()->xyz();
                  

                  有人知道实现这一目标的方法吗?

                  Anyone know of a way to achieve this?

                  推荐答案

                  在 PHP 5.4+ 中,解析器已被修改,因此您可以执行类似的操作

                  In PHP 5.4+, the parser's been modified so you can do something like this

                  (new Foo())->xyz();
                  

                  将实例化在括号中,并用链子连接起来.

                  Wrap the instantiation in parenthesis, and chain away.

                  在 PHP 5.4 之前,当您使用

                  Prior to PHP 5.4, when you're using the

                  new Classname();
                  

                  语法,您不能将方法调用链接到实例化之外.这是 PHP 5.3 语法的限制.一旦对象被实例化,您就可以将其链接起来.

                  syntax, you can't chain a method call off the instantiation. It's a limitation of PHP 5.3's syntax. Once an object is instantiated, you can chain away.

                  我见过用来解决这个问题的一种方法是某种静态实例化方法.

                  One method I've seen used to get around this is a static instantiation method of some kind.

                  class Foo
                  {
                      public function xyz()
                      {
                          echo "Called","
                  ";
                          return $this;
                      }
                  
                      static public function instantiate()
                      {
                          return new self();
                      }
                  }
                  
                  
                  $a = Foo::instantiate()->xyz();
                  

                  通过在静态方法中包装对 new 的调用,您可以使用方法调用实例化一个类,然后您就可以自由地将其链接起来.

                  By wrapping the call to new in a static method, you can instantiate a class with method call, and you're then free to chain off that.

                  这篇关于如何在新创建的对象上链接方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  How do I pass parameters into a PHP script through a webpage?(如何通过网页将参数传递给 PHP 脚本?)
                  PHP - include a php file and also send query parameters(PHP - 包含一个 php 文件并发送查询参数)
                  Where can I read about conditionals done with quot;?quot; and quot;:quot; (colon)?(我在哪里可以阅读有关使用“?完成的条件的信息?和“:(冒号)?)
                  Accessing arrays whitout quoting the key(在不引用键的情况下访问数组)
                  What is the name for the quot;lt;lt;lt;quot; operator?(“lt;lt;lt;的名字是什么?操作员?)
                  default as first option in switch statement?(默认为 switch 语句中的第一个选项?)

                  <small id='7JbMv'></small><noframes id='7JbMv'>

                      <tfoot id='7JbMv'></tfoot>
                      • <legend id='7JbMv'><style id='7JbMv'><dir id='7JbMv'><q id='7JbMv'></q></dir></style></legend>
                        • <bdo id='7JbMv'></bdo><ul id='7JbMv'></ul>

                          <i id='7JbMv'><tr id='7JbMv'><dt id='7JbMv'><q id='7JbMv'><span id='7JbMv'><b id='7JbMv'><form id='7JbMv'><ins id='7JbMv'></ins><ul id='7JbMv'></ul><sub id='7JbMv'></sub></form><legend id='7JbMv'></legend><bdo id='7JbMv'><pre id='7JbMv'><center id='7JbMv'></center></pre></bdo></b><th id='7JbMv'></th></span></q></dt></tr></i><div id='7JbMv'><tfoot id='7JbMv'></tfoot><dl id='7JbMv'><fieldset id='7JbMv'></fieldset></dl></div>
                              <tbody id='7JbMv'></tbody>