たぶん誰かがこのanonオブジェクトで奇妙な振る舞いを説明するのを手伝うことができます:
$equipTest = (object) [
$leakageLimit = "",
$description = "",
$location = "",
$text = "",
];
$description = "";
次のループでは、$leakageLimit
問題なく値を割り当てることができます。
$equipTest->leakageLimit = $temp;
しかし$location
、エラー/通知なしでそれに連結させません:
$equipTest->location .= $temp;
結果:
注意(8):未定義のプロパティ:
stdClass::$location
$equipTest->description
ループの外で一時変数を宣言するまではそうだった。ループ内の一時的な説明に次の値を割り当てました。
$description .= $temp;
そして、ループの最後に次のようにしてオブジェクトに割り当てます。
$equipTest->$description = $description;
この匿名オブジェクトに連結できないのはなぜですか?完全に宣言されたクラスの一部としてそれを持っていたときは、以前は問題ありませんでした。
このコード
[
$leakageLimit = "",
$description = "",
$location = "",
$text = "",
]
という意味ではない
4つの名前付き要素で配列を作成し、それぞれを空の文字列で初期化します。
その意味は
空の文字列を変数に割り当てた結果として、4つの数値インデックス付き要素の配列を作成し、すべての要素の値を設定します。
そして、割り当ての結果は、割り当てられている値、つまり-空の文字列です。
だから、もしあなたが
print_r([
$leakageLimit = "",
$description = "",
$location = "",
$text = "",
]);
4つの空の値を持つ配列が表示されます。そしてまた、あなたの変数は$leakageLimit
、$description
、$location
、$text
空の文字列に設定されます。
したがって、4つの名前付きプロパティを持つオブジェクトを作成する場合、コードは次のようになります。
$equipTest = (object) [
'leakageLimit' => "",
'description' => "",
'location' => "",
'text' => "",
];
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加