Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中的循环内创建新对象_Php_Oop_Prestashop - Fatal编程技术网

在php中的循环内创建新对象

在php中的循环内创建新对象,php,oop,prestashop,Php,Oop,Prestashop,我有一个产品ID数组,希望通过调用Product类来获取产品信息。我曾尝试将其添加到foreach循环中,但得到一个致命错误,即类Product的对象无法转换为字符串。这就是我尝试过的 $productIDs = Db::getInstance()->executeS("SELECT id_product FROM wtop_product ORDER BY position ASC"); $products = ''; foreach($productIDs as $productID

我有一个产品ID数组,希望通过调用Product类来获取产品信息。我曾尝试将其添加到foreach循环中,但得到一个致命错误,即类Product的对象无法转换为字符串。这就是我尝试过的

$productIDs = Db::getInstance()->executeS("SELECT id_product FROM wtop_product ORDER BY position ASC");

$products = '';
foreach($productIDs as $productID)
{
    $products .= new Product($productID['id_product'], false, '1');
}

由于这会产生错误,显然这不是处理这种情况的正确方法。我不确定的是如何将产品ID数组传递给新产品调用,并获得这些产品的输出。

在数组中存储对象:

$products = array();
foreach($productIDs as $productID) {
    $products[$productID['id_product']] = new Product($productID['id_product'], false, '1');
}
print_r($products);

在数组中存储对象:

$products = array();
foreach($productIDs as $productID) {
    $products[$productID['id_product']] = new Product($productID['id_product'], false, '1');
}
print_r($products);

您是否应该建立对象列表?要扩展karthikr的评论,请尝试创建对象数组,而不是将它们作为字符串粘在一起。
新产品
是否应该返回字符串?如果是,那么实现一个函数您是否尝试过为类创建一个toString()方法并调用
(新产品(…)->toString()
?您是否应该建立一个对象列表?要扩展karthikr的评论,请尝试
$products[]=…
创建一个对象数组,而不是将它们作为字符串粘在一起。新产品
是否应该返回字符串?如果是,那么实现一个函数您是否尝试过为类创建一个toString()方法并调用
(新产品(…)->toString()