获取对象字段的较短表示法

时间:2011-06-30 09:07:40

标签: php oop notation

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

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

public class NewClass {
    public int testNum = 5;
}

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

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

虽然PHP中的类似案例会迫使我这样做:

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

PHP中有没有办法在一个语句中执行此操作? 注意:我无法编辑类。

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

$num = NewClass::Create()->testNum;

答案 2 :(得分:1)

您只能通过函数/方法调用来执行此操作 new不是一个函数,而是一个语言结构。