Unfortunately, it is not possible to call a method on an object just created with new
before PHP 5.4.
In PHP 5.4 and later, the following can be used:
$purchaseOrder = (new PurchaseOrderFactory)->instance();
In previous versions, you have to call the method on a variable:
$purchaseFactory = new PurchaseOrderFactory;
$purchaseOrder = $purchaseFactory->instance();
Note: The later is probably even more useful/wise even after you've upgraded to PHP 5.4 because those two lines can be better separated and there is less code containing a hard-encoded classname, here the name of the factory class PurchaseOrderFactory
. This will make you more fluent maintaining the code over time.