есть функция get_defined_vars, нужен ее аналог, тоесть нужна функция которая получает список переменных текущего скрипта и выводит их в отформатированном виде.
Хотелось бы узнать как работает get_defined_vars()
конструкции:
function func($array)
{
foreach($array as $key => $val)
/* вывод */
}
func(get_defined_vars());
и
$array = get_defined_vars();
foreach($array as $key => $val)
/* вывод */
не подходят
хотелось бы что то такое:
function func()
{
/* получаем переменные которые находятся вне функции в массив $array */
foreach($array as $key => $val)
/* вывод */
}
func();
Спустя 36 минут, 20 секунд (16.09.2010 - 18:05) twin написал(а):
Домашнее задание?
Спустя 3 минуты, 57 секунд (16.09.2010 - 18:09) gantzy написал(а):
угу... только сам для себя поставил.
Спустя 7 минут, 28 секунд (16.09.2010 - 18:16) twin написал(а):
Ну возьми тогда массив $GLOBALS и посмотри что внутри. И как это достать.
Спустя 17 минут, 15 секунд (16.09.2010 - 18:33) gantzy написал(а):
GLOBALS будет соодержать все переменные, мне нужно взять только те, которые были объявлены в файле в котором вызвана функция func(), вот как их отфильтровать я не знаю.
Спустя 9 часов, 49 минут, 51 секунда (17.09.2010 - 04:23) gantzy написал(а):
совсем никак не решаемо?
Без списка имен переменных не обойтись?
Без списка имен переменных не обойтись?
Спустя 6 часов, 53 минуты, 48 секунд (17.09.2010 - 11:17) SlavaFr написал(а):
я предпологаю, что у тебя какая то проблема, которую ты не можеш решить из за незнания стандартного подхода.
ачем это нужно узнавать переменные на уровне файла а не на уровне скрипта?
может все решается гoраздо проще?
ачем это нужно узнавать переменные на уровне файла а не на уровне скрипта?
может все решается гoраздо проще?
Спустя 1 час, 45 секунд (17.09.2010 - 12:18) gantzy написал(а):
стандартный подход это get_defined_vars()
Зачем мне это нужно. Для отслеживания изменения значений переменных.
Чего я хочу добиться и как у меня это работает сейчас:
захожу на ftp открываю файл .php, вставляю в то место где я хочу остановить скрипт:
func выводит переменные в отформатированном виде. Чего же я хочу, это уменьшить высов этой функции и использовать просто:
Примерно, так. Зачем я этого хочу, это уже другой вопрос
func() это просто пример реализации, на самом деле у меня есть класс который выводит переменные скрипта для отладки. там много вариантов и с заранее готовым списком имен переменных, с последующем выдиранием из GLOBALS и т.п.
и выглядит это примерно так:
но в этом случае я формирую массив имен переменных, которые надо вывести и выдираю их из GLOBALS. А сейчас хочу сделать возможным не формировать массив а собрать его автоматом как это делает get_defined_vars().
Зачем мне это нужно. Для отслеживания изменения значений переменных.
Чего я хочу добиться и как у меня это работает сейчас:
захожу на ftp открываю файл .php, вставляю в то место где я хочу остановить скрипт:
func(get_devined_vars());
func выводит переменные в отформатированном виде. Чего же я хочу, это уменьшить высов этой функции и использовать просто:
func();
Примерно, так. Зачем я этого хочу, это уже другой вопрос

func() это просто пример реализации, на самом деле у меня есть класс который выводит переменные скрипта для отладки. там много вариантов и с заранее готовым списком имен переменных, с последующем выдиранием из GLOBALS и т.п.
и выглядит это примерно так:
$deb = new CDEBUG(array("TEST1","TEST2","TEST3"));
/*код*/
$deb->stop(1);
/*код*/
$deb->stop(2);
/*код*/
$beb->stop(3);
но в этом случае я формирую массив имен переменных, которые надо вывести и выдираю их из GLOBALS. А сейчас хочу сделать возможным не формировать массив а собрать его автоматом как это делает get_defined_vars().
Спустя 1 час, 23 минуты, 45 секунд (17.09.2010 - 13:41) twin написал(а):
Смутно как то... может этот принцип чем поможет?
Спустя 22 минуты, 53 секунды (17.09.2010 - 14:04) Joker-Job написал(а):
посмотри массив $GLOBAL в начеле файле и после в нужной строке и после сравни все что появилось, значит обьявленны в этом файле. а вообще затея непонятная и скорее всего связана с тем что челевек незнает о области видимости.
Спустя 31 минута, 56 секунд (17.09.2010 - 14:36) gantzy написал(а):
Цитата (Joker-Job @ 17.09.2010 - 11:04) |
посмотри массив $GLOBAL в начеле файле и после в нужной строке и после сравни все что появилось, значит обьявленны в этом файле. а вообще затея непонятная и скорее всего связана с тем что челевек незнает о области видимости. |
о да... вообще удобно будет

Спустя 18 минут, 10 секунд (17.09.2010 - 14:54) gantzy написал(а):
Цитата (twin @ 17.09.2010 - 10:41) |
Смутно как то... может этот принцип чем поможет? |
такой принцип уже используется только я на вход передаю массив имен переменных, которые нужно отследить. Меня это и не устраивает, что нужно на вход что то передавать.