Войти

Показать полную графическую версию : PHP. Финты ушами с переменными и функциями.


Prisoner
25-06-2005, 02:29
Доброго времени суток, господа. У меня возникла сложность в виде шизофреничных сомнения в вопросе о невозможности ("Невозможно? Неизбежно!" A. Smith). А именно: Может ли функция знать в каком файле и какой строке она была вызвана? Необходима сия вещь для написания функции дебажного вывода значения некой переменной. На данный момент передаю функции ручками: имя переменной (строка), константы __FILE__, __LINE__. Мысли?

Vlad Drakula
25-06-2005, 10:36
Prisoner
1) есть глобальная перменная - имя файла.
2) имя файла можно выдирать их строки запроса.

archy
25-06-2005, 15:06
Prisoner
Предлагаю глянуть в сторону различных дебажных модулей

mar
25-06-2005, 17:16
+ поля типа referer (но это может дать только имя вызывающего файла)

Prisoner
26-06-2005, 07:22
Зрю некорректное изложение и/или понимание вопроса... чуть больше информации: представьте, что где-то (index.php) происходит инклюд всего необходимого (постоянно), в том числе и модуля с функциями по дебагу. Таким образом, выполняется любая из множества страниц сайта представляющая собой всегда только index.php (что выводить и как передается ему через параметры). Так глобальные переменные будут хранить по сути константу с содержимым - index.php. Вот представьте себе: скриптом index.php выполняется код расположенный в some_file.inc который проинклюдил included.inc. В последнем хотим поглядеть значение переменной (пусть это будет сложный объект) - вызываем нашу функцию дебага var_dumpf(). Вот функция и должна вывести в шапке вывода что-то вроде some_var in included.inc(123), где в скобках номер строки вызова var_dumpf(). Компрендо? %)
Мне лично думается тут нужны не обычные методы, а рутины низкого уровня по работе с переменными.

P.S. archy, а к примеру, плиз? Есть конкретика или начинать шерстить? :)

Prisoner
28-06-2005, 09:17
Решение тут (http://ru.php.net/debug_backtrace).

mar
28-06-2005, 10:51
Prisoner
хм, я действительно не разобралась в "ТЗ". А за ссылку спасибо! Это интересно




© OSzone.net 2001-2012