Я получил эту ошибку при отладке моего кода:
Ошибка 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();