PHP在声明中获取类变量的值

时间:2014-06-01 04:16:54

标签: php class

我只是好奇是否有可能在创建一个对象时获取类变量的值?我想做的是:

$class = new MyClass("something")->ok;

对于上面的示例,该类是:

class MyClass {
   public $ok;

   public function __construct($a) {
      $this->ok = $a;
   }
}

我知道通过再写一行来获取$a的值很容易,但我真的很好奇是否可以用更短的方式来做。

1 个答案:

答案 0 :(得分:2)

是的,有可能。此功能称为“实例方法调用”,为introduced in PHP 5.4。只需包含一对包含new MyClass()表达式的额外括号:

$class = (new MyClass("something"))->ok;
         ^                        ^

表达式new MyClass()是返回对象的东西(而不是类构造函数),这就是为什么它需要包含在一对额外的括号中。

更多阅读: