51

调试代码时出现此错误:

PHP Parse 错误:语法错误,第 72 行的 order.php 中出现意外的 T_OBJECT_OPERATOR

这是代码片段(从第 72 行开始):

$purchaseOrder = new PurchaseOrderFactory->instance();
$arrOrderDetails = $purchaseOrder->load($customerName);
4

3 回答 3

88

new不幸的是,在 PHP 5.4 之前无法调用刚刚创建的对象的方法。

在 PHP 5.4 及更高版本中,可以使用以下内容:

$purchaseOrder = (new PurchaseOrderFactory)->instance();

请注意强制性的括号对。

在以前的版本中,您必须在变量上调用该方法:

$purchaseFactory = new PurchaseOrderFactory;
$purchaseOrder = $purchaseFactory->instance();
于 2012-11-14T22:36:07.737 回答
3

更改为您的语法无效:

$purchaseOrder = PurchaseOrderFactory::instance();
$arrOrderDetails = $purchaseOrder->load($customerName);

其中大概instance()创建了一个类的实例。你可以这样做而不是说new

于 2012-11-14T22:34:59.380 回答
1

您不能使用(这是无效的 php 语法):

new PurchaseOrderFactory->instance();

您可能是指其中之一:

// Initialize new object of class PurchaseOrderFactory
new PurchaseOrderFactory(); 

// Clone instance of already existing PurchaseOrderFactory
clone  PurchaseOrderFactory::instance();

// Simply use one instance
PurchaseOrderFactory::instance();

// Initialize new object and that use one of its methods
$tmp = new PurchaseOrderFactory();
$tmp->instance();
于 2012-11-14T22:35:08.317 回答