2010-05-28 58 views
0

请帮助我了解:PHP对象的帮助 - >意外T_OBJECT_OPERATOR

print gettype(new CustomerObject()) 

打印: “对象”(所以它是一个对象)

print gettype((new CustomerObject())->get_customer()); 

打印:意外T_OBJECT_OPERATOR

如果我在两条线上做它,它工作正常

$object = new Customer($order->customer_id); 
print gettype($object); 

打印:对象

$customer = $object->get_customer(); 
print gettype($customer); 

打印:阵列

看来,线不能被连接成一个单一的呼叫。 这是正确的吗?那背后的逻辑是什么?

回答

2

你是一个有点糊涂

print gettype((new CustomerObject())->get_customer()); 

试图调用该方法get_customer()什么的GetType回报。 (一个字符串不是一个对象)

基本上,如果你想创建一个对象,然后调用它的一个方法,你必须在两行分开。

这没有worky:

$array = new Object->getArray(); 

这worky:

$object = new Object; 
$array = $object->getArray(); 
+0

好了,就在我以为......我已经涉足Java和您可以调用方法的一部分对象声明...这显然是java独有的功能? – 2010-05-28 05:55:28

+0

那么,它不是独家的Java。刚刚从PHP中排除。 – 2010-05-28 05:56:06

+0

又一个PHP烦恼:( – GateKiller 2012-05-31 10:13:42