51

コードのデバッグ中に次のエラーが発生しました。

PHP 解析エラー: 構文エラー、72 行目の order.php の予期しない T_OBJECT_OPERATOR

コードのスニペットを次に示します (72 行目から)。

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

3 に答える 3

88

new残念ながら、 PHP 5.4 より前で作成されたばかりのオブジェクトでメソッドを呼び出すことはできません。

PHP 5.4 以降では、以下を使用できます。

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

必須の括弧のペアに注意してください。

以前のバージョンでは、変数でメソッドを呼び出す必要がありました:

$purchaseFactory = new PurchaseOrderFactory;
$purchaseOrder = $purchaseFactory->instance();
于 2012-11-14T22:36:07.737 に答える
3

構文が無効であったため、次のように変更します。

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

おそらくinstance()、クラスのインスタンスを作成します。と言うよりこうすればいいnew

于 2012-11-14T22:34:59.380 に答える
1

使用できません (無効な 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();
于 2012-11-14T22:35:08.317 に答える