Ошибка PHP Parse: синтаксическая ошибка, неожиданный T_OBJECT_OPERATOR

Я получил эту ошибку при отладке моего кода:

Ошибка PHP Parse: синтаксическая ошибка, неожиданный T_OBJECT_OPERATOR в order.php в строке 72

Вот фрагмент кода (начиная с строки 72):

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

К сожалению, невозможно вызвать метод для объекта, только что созданного с помощью new перед PHP 5.4.

В PHP 5.4 и более поздних версиях можно использовать следующее:

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

В предыдущих версиях вы должны вызвать метод для переменной:

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

Примечание. Более поздняя версия, вероятно, даже более полезная / мудрая даже после того, как вы обновили до PHP 5.4, потому что эти две строки могут быть лучше разделены и меньше кода, содержащего жестко закодированное имя класса, здесь имя фабричного класса PurchaseOrderFactory . Это позволит вам более свободно поддерживать код с течением времени.

измените его, поскольку ваш синтаксис недействителен:

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

где предположительно instance() создает экземпляр класса. Вы можете сделать это, а не

Вы не можете использовать (это неверный синтаксис 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();