Не смог поставить правильно вопрос в заголовке, тк хз В общем есть класс, в нем есть паблик метод preload(); Передается туда путь к файлу, а этот файл инклудится, так вот, допутим мы несколько раз выполнили preload c разными файлами, суть в чем- в этих файлах лежат ассоциативные массивы, и мне надо получить на них ссылки(так как далее эти массивы сливаются в один и используются в последствии), может мне в этих файлах написать global $массив; а перед этим их из паррент файла инициализировать, или есть другой метод? Просто как-то не кавайно получается. В идеале хотелось бы реализовать слияние этих массивов, не зная их названия , может есть в пыхе такие возможности? Или тогда все файлы, которые передаются в preload должны сразу в один и тот-же массив дописываться? Но тут еще маааленькое НО ---некоторые файлы содержат массивы с произвольными названиями =\. Вот как мне быть я вообще хз. Добавлено спустя 16 минут 55 секунд: А, все, решил задачу. В паррент скрипте инициализируем массив, где будут элементы всех массивов которые будут содержаться в прелоад файлах, назовем этот массив $allelems, допустим в презагружаемом файле лежит массив $arr и нам его элементы надо поместить в $allelems быстро и без затрат. содержание предзагружаемого файла: Код (PHP): <?php global $allelems; $arr=&$allelems; $arr['key1']='value1'; $arr['key2']='value2'; И так во всех предзагружаемых файлах. В итоге потерь в производительности минимум, код увеличится тоже минимум =) Добавлено спустя 22 секунды: Может кто предложит более лучший вариант? Добавлено спустя 2 минуты 27 секунд: Просто при каждом выполнении подгружать всю инфу, а потом ее обрабатывать--это дорога в ад
Такое огромное количество элементов в массиве, что не хочется загружать их все каждый раз? Откуда вообще пошла такая разбивка массива? Может лучше один раз слить всё это в один массив и инклудить его? Если это типа конфига - то лучше даже в ini файл, наверно. Мои замеры показали, что parse_ini_file() быстрее отработает, чем include() для одинаковых массивов. Оно и не мудрено, синтаксис ini файлов-то попроще будет.
Дело в том, что инфа разная, и ключи могут совпадать и в итоге начнутся глюки. Короче говоря в итоге мне надо получить слияние произвольных массивов в 1 массив. У меня инклуд будет работать быстрее на 40%+разовая агрессивная оптимизация от APC с кешированием скомпилированых пых-файлов, так что закроем глаза на скорость инклуда) Добавлено спустя 26 минут 36 секунд: Просто чтобы preload("path_to.php"); подгружал в массив со значениями ранее подгруженых, значения массива подгружаемого файла. Тоесть зохотел я подгрузить в общий массив --просто вызвал прелоад и все)
подключаемый файл может возвращать 1.php Код (PHP): $unknow_array = array(1,2,3); return $unknow_array; 2.php Код (PHP): $array = include('1.php'); если подключаемые файлы будут возвращать массив, то preload сможет их получать, не зная имени этой переменной =)