プライベート配列を持つクラスがあります。追加したファイルをインポートするときに、(作成された) 新しいオブジェクトをこの配列に追加して、さらに使用できるようにします。キーとして使用したい名前をオブジェクトに持っています。そう:
<?php
$object = new Object();
$object->Name = "test";
class OtherObject
{
private $loaded_files = array();
public function AddObject($fileObj)
{
echo count($this->loaded_files); //results 0
$this->loaded_files[$fileObj->Name] = clone $fileObj;
echo count($this->loaded_files); //results 0
//array_push($this->loaded_files, clone $fileObj);
//$this->loaded_files["hard-coded"] = clone $fileObj;
}
}
$otherObject = new OtherObject();
$otherObject->AddObject($object);
?>
私の例でわかるように、名前をキーとして使用し、オブジェクトを複製して配列に配置します。調査後array_push()
(キーなし)、ハードコードされたキーは正常に機能しますが、$fileObj->Name
機能しません。これがどのように可能か知っている人はいますか?
編集:サンプルコードを少し変更しました。これは私の製品コードではありません。あると思いますが、ゼロのままです。キーまたはハードコードされたキーを使用しない場合にのみ、オブジェクトが追加されます。