почему возник этот вопрос 1) формирую массив который записывается в файл PHP: <? $name = array(1 => 'a',2 => 'b',3 => 'c',5 => 7,); ?> 2) есть кусок скрипта (функция класса) который сканирует директорию и инклудит все скрипты PHP: $d = dir( SYSTEM_DIR); while (false !== ($entry = $d->read())) { if ( preg_match("/\w+\.cache\.php$/",$entry)) { $include_name = SYSTEM_DIR.$entry; require $include_name; } } $d->close(); Однако после отработки скрипта, файл инклудится, но var_dump($name) пустой
Не понял, как связаны 1 и 2 ? Или то что написано в 1 подключается методом, указанным в 2, я верно понял?
да, то что написано 1 подключаем методом 2 PHP: function saveCache($name, &$array){ if (trim($name)=='') return false; $filename= SYSTEM_DIR."$name.cache.php"; if (!is_array($array)) return false; $str = "<?\n global \$"."$name;\n\$"."$name = array("; foreach($array as $key=>$data ){ if( is_string($data ) ) $data="'$data'"; if (is_string($key)) $key="'$key'"; $str.="$key => $data,"; } $str.=");\n?>"; $ret = file_put_contents( $filename, $str); if ($ret >0) return true; return false; } формируем массив 1 а кодом 2 его забираем
ошибка оказалась в том, что инклудилось в классе, соответсвенно подинклуденные переменные очевидно стали локальными. Отдельное спасибо vb за подсказку.