从数组或对象检索值的PHP
我相信我已经得到了面向对象的php。我希望能够从我的对象打印出“文件名”。我读到我不想要[storage:ArrayObject:private],但我不知道如何摆脱它,也不知道它为什么会存在 任何帮助都将不胜感激。谢谢 我的班级是:从数组或对象检索值的PHP,php,oop,Php,Oop,我相信我已经得到了面向对象的php。我希望能够从我的对象打印出“文件名”。我读到我不想要[storage:ArrayObject:private],但我不知道如何摆脱它,也不知道它为什么会存在 任何帮助都将不胜感激。谢谢 我的班级是: class ProductImage extends TemplateContext { public static function get_images($id) { $product_images = mysql_query("SELECT fi
class ProductImage extends TemplateContext {
public static function get_images($id) {
$product_images = mysql_query("SELECT filename from product_images WHERE related_product_id = '" . $id. "' AND priority = 0 ORDER BY related_product_id ASC") or die("Query failed: " . mysql_error());
while ($product_image = mysql_fetch_array($product_images)) {
$results[] = new self($product_image);
}
return $results;
}
}
我的看法是:
$id= '5';
print_r(ProductImage::get_images($id));
我的输出是:
Array
(
[0] => ProductImage Object
(
[ctx] => Array
(
)
[storage:ArrayObject:private] => Array
(
[0] => product.png
[filename] => product.png
)
)
)
文件名存储在私有类属性中,您必须找到或编写一个public get()方法来检索它。如果您在那里执行
new self(…)
操作时,可以看到调用的\u构造,那将是一件好事。它应该在您的ProductImage
类或它的祖先之一中。另外,ArrayObject
s非常类似于数组,您应该能够以任何方式将其用作数组(使用类似于$images[0]->storage['filename'])
。啊……这两个注释加在一起都很有意义。添加了这两个东西,并使其工作。谢谢mysql.*
函数不再维护,不应在任何新的代码库中使用。它正逐渐被淘汰,取而代之的是更新的API。相反,您应该与或一起使用。