コードのデバッグ中に次のエラーが発生しました。
PHP 解析エラー: 構文エラー、72 行目の order.php の予期しない T_OBJECT_OPERATOR
コードのスニペットを次に示します (72 行目から)。
$purchaseOrder = new PurchaseOrderFactory->instance();
$arrOrderDetails = $purchaseOrder->load($customerName);
コードのデバッグ中に次のエラーが発生しました。
PHP 解析エラー: 構文エラー、72 行目の order.php の予期しない T_OBJECT_OPERATOR
コードのスニペットを次に示します (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();
構文が無効であったため、次のように変更します。
$purchaseOrder = PurchaseOrderFactory::instance();
$arrOrderDetails = $purchaseOrder->load($customerName);
おそらくinstance()
、クラスのインスタンスを作成します。と言うよりこうすればいいnew
使用できません (無効な 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();