PHP有趣的创建类实例

时间:2012-11-11 12:45:55

标签: php syntax

我在PHP中读过这个有趣的语法:

$value = (new MyClass)->attribute1;
  1. 可以使用它吗?在我分析的任何代码中,我从未见过这样的东西。有什么优点和缺点?
  2. 为什么我不能使用这种语法设置属性?结构如下:

    (new MyClass) - > attribute1 ='value1';

  3. 在'='符号处抛出错误,无论该类中是否存在该属性。

2 个答案:

答案 0 :(得分:2)

  1. 好吧,我没有看到使用它的重点,因为你失去了对象的引用,你不能再使用它了,它打破了OO的概念。

  2. 我认为(新的MyClass) - >属性1首先被解析,所以它与写出类似42 = 12

  3. 的东西相同

答案 1 :(得分:0)

如果类MyClass支持所有现有实例的内部静态列表(或hashmap),这可能有意义。这样,您可以创建新对象并在列表中获取其唯一ID或索引以供将来引用(例如,通过cookie将其发送到客户端)。

至于作业,你会为这种情况发布确切的错误信息。我猜,错误是关于将某些东西分配给即将被销毁的临时值。