如何多次循环包含Class文件?

时间:2018-09-26 10:26:09

标签: php class foreach

我想多次包含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,因此该文件仅包含一次。

我该如何解决?

2 个答案:

答案 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方法,而不是在每次迭代中都初始化对象。具有大量函数的类初始化每次迭代的开销很大。