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);
?>

正如您在我的示例中看到的那样,我想使用 Name 作为键并克隆对象,以便将其放入数组中。经过调查array_push()(所以,没有密钥)和硬编码密钥工作正常,但$fileObj->Name事实并非如此。有谁知道这怎么可能?

编辑:稍微更改了示例代码。这不是我的生产代码。我希望我有一个,但它保持为零。只有当我不使用密钥或硬编码密钥时,才会附加该对象。

4

1 回答 1

0

好的,我发现了问题。@Barmar,@AlexShesterov 感谢您的帮助。

问题是它在添加到对象之前没有被修剪。因此,在添加 trim($value) 所有元素之后,问题就解决了,并且元素添加到了数组中:)

于 2013-06-22T19:09:36.823 回答