我想多次包含Class
个文件,我试图将文件包含在foreach循环中,但是由于Class
,它只包含了一次。
以下是我的代码。
1)我在这里包含一个文件。
$ordersinfo = $ordercon->get_orders_by_ids($p_order_id);
foreach ($ordersinfo as $key => $customerInfo) {
include("info_customer.php");
}
2)遵循info_customer.php
class Demo
{
function __construct(argument)
{
echo "HEllo";
}
}
$test = new Demo;
我在oderinfo
中总共有3条记录,但是由于Class
文件中声明了info_customer.php
,因此该文件仅包含一次。
我该如何解决?
答案 0 :(得分:4)
仅包含一次您的类文件,并在foreach循环中构造该类的实例。看起来像这样:
include("info_customer.php");
$ordersinfo = $ordercon->get_orders_by_ids($p_order_id);
foreach ($ordersinfo as $key => $customerInfo) {
$test = new Demo;
//Do stuff with $test
}
info_customer.php
:
class Demo
{
function __construct(argument)
{
echo "HEllo";
}
}
答案 1 :(得分:0)
检查一下。
请用$array
替换$ordersinfo = $ordercon->get_orders_by_ids($p_order_id);
Index.php
include("info_customer.php");
//a test array to simulate the foreach
$array = array('1', '2', '3', '4');
foreach ($array as $key => $customerInfo) {
$test = new Demo($customerInfo);
}
info_customer.php
在构造函数参数中,我已将
argument
更正为$argument
。
class Demo
{
function __construct($argument)
{
echo "HEllo";
}
}
$test = new Demo;
如果要在循环内初始化对象new Demo($param)
(如上例所示),则可能需要引入setter和getter并在循环内调用getter方法,而不是在每次迭代中都初始化对象。具有大量函数的类初始化每次迭代的开销很大。