unexpected t_variable parse error end php

t_variable - Error de PHP Parse: error de sintaxis, inesperado T_OBJECT_OPERATOR



parse error: syntax error, unexpected end of file (3)

Obtuve este error al depurar mi código:

Error de PHP Parse: error de sintaxis, inesperado T_OBJECT_OPERATOR en order.php en la línea 72

Aquí hay un fragmento del código (comenzando en la línea 72):

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


Lamentablemente, no es posible llamar a un método en un objeto recién creado con new antes de PHP 5.4.

En PHP 5.4 y posterior, se puede usar lo siguiente:

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

En versiones anteriores, debe llamar al método en una variable:

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

Nota: Lo posterior probablemente sea aún más útil / inteligente incluso después de que haya actualizado a PHP 5.4 porque esas dos líneas se pueden separar mejor y hay menos código que contenga un nombre de clase codificado, aquí el nombre de la clase de fábrica PurchaseOrderFactory . Esto te hará más fluido manteniendo el código a lo largo del tiempo.


No puede usar (su sintaxis php es inválida):

new PurchaseOrderFactory->instance();

Probablemente quiso decir uno de esos:

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


cambie a como su sintaxis no es válida:

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

donde presumiblemente instance() crea una instancia de la clase. Puedes hacer esto en lugar de decir new