我有一个私有数组的类。 当我导入文件时,我添加了想要将新对象(已创建)添加到此数组以供进一步使用。 我在对象中有一个我想用作键的名字。所以:
<?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
没有。有谁知道这是怎么回事?
编辑:稍微更改了示例代码。这不是我的生产代码。我希望我有一个,但它保持为零。只有当我不使用密钥或硬编码密钥时,才会追加该对象。
答案 0 :(得分:0)
好的,我发现了问题。 @Barmar,@ AlexShesterov感谢您的帮助。
问题是在添加到对象之前它没有被修剪。 因此,在添加trim($ value)后,问题解决了所有元素,并将元素添加到数组中:)