Как включить файл класса несколько раз в цикле? - PullRequest
0 голосов
/ 26 сентября 2018

Я хочу включить 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;

У меня всего 3 записи в oderinfo, но файл включен толькоодин раз из-за Class, объявленного в info_customer.php файле.

Как я могу решить?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Проверьте это.

Пожалуйста, замените $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) внутрицикл (как в примере выше), вам может понадобиться ввести сеттеры и геттеры и вызывать метод геттера внутри цикла, а не инициировать объект в каждой итерации.Класс с множеством функций будет дорогостоящим для инициализации каждой итерации.

0 голосов
/ 26 сентября 2018

Включите ваш файл класса только один раз и создайте экземпляр класса в цикле 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";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...