4

我想知道 PHP 中是否有一个简短的表示法用于在创建对象时获取对象字段。

例如,在 Java 中,我不必为了获取其中一个字段而将新创建的对象放入变量中。例子:

public class NewClass {
    public int testNum = 5;
}

现在,要testNum在新创建的对象中获取字段,我所要做的就是:

int num = (new NewClass()).testNum;

虽然 PHP 中的类似情况会迫使我这样做:

$obj = new NewClass();
$num = $obj->testNum;

PHP中有没有办法在一个语句中做到这一点?注意:我无法编辑课程。

4

3 回答 3

2

也许您正在寻找静态属性或常量

public class NewClass {
  const NUM = 5;
  public static $num = 5;
}
$num = NewClass::NUM;
$num = NewClass::$num;

如果你真的需要对象成员,那么不,PHP 目前不支持这个,但它计划在下一个 5.4 版本中发布。

于 2011-06-30T09:12:22.937 回答
2

您可以在调用构造函数的类中创建一个包装器创建函数,然后您可以简单地:

$num = NewClass::Create()->testNum;
于 2011-06-30T09:12:42.590 回答
1

您只能通过函数/方法调用来做到这一点。
new不是函数,而是语言结构。

于 2011-06-30T09:11:37.640 回答