0

プライベート配列を持つクラスがあります。追加したファイルをインポートするときに、(作成された) 新しいオブジェクトをこの配列に追加して、さらに使用できるようにします。キーとして使用したい名前をオブジェクトに持っています。そう:

<?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機能しません。これがどのように可能か知っている人はいますか?

編集:サンプルコードを少し変更しました。これは私の製品コードではありません。あると思いますが、ゼロのままです。キーまたはハードコードされたキーを使用しない場合にのみ、オブジェクトが追加されます。

4

1 に答える 1

0

問題が見つかりました。@Barmar、@AlexShesterov助けてくれてありがとう。

問題は、オブジェクトに追加する前にトリミングされなかったことです。したがって、トリム($値)すべての要素を追加した後、問題は解決され、要素が配列に追加されました:)

于 2013-06-22T19:09:36.823 に答える