【问题标题】:PHP object help -> unexpected T_OBJECT_OPERATORPHP 对象帮助 -> 意外的 T_OBJECT_OPERATOR
【发布时间】:2011-02-24 23:50:14
【问题描述】:

请帮我理解:

print gettype(new CustomerObject()) 

prints: "object"(所以它是一个对象)

但是

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);

打印:数组

似乎无法将这些线路合并为一个呼叫。 它是否正确?这背后的逻辑是什么?

【问题讨论】:

    标签: php object gettype


    【解决方案1】:

    你有点困惑

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

    尝试根据 gettype 返回的内容调用方法 get_customer()。 (字符串不是对象)

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

    这行不通:

    $array = new Object->getArray();
    

    这项工作:

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

    【讨论】:

    • 好吧,就像我想的那样……我涉​​足了java,你可以将方法作为对象声明的一部分来调用……这显然是java独有的特性?
    • 嗯,它不是 java 独有的。刚刚从 PHP 中排除。
    猜你喜欢
    • 2011-04-28
    • 2013-12-28
    • 2023-02-06
    • 2011-07-15
    • 1970-01-01
    • 2012-11-03
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多