Здравствуйте, уважаемые читатели, если среди вас есть те кому часто приходится разбираться в чужом коде, то материал из данной статьи о списке переменных php может , хорошо сэкономить ваше время. Когда вам поступает задание на доработку php скрипта чей-нибудь самодельной СMS, очень полезным бывает узнать список всех переменных, уже определенных до момента отработки текущего скрипта.
Наверняка многие из вас при знакомстве с чужим кодом и алгоритмами его работы, пользуются стандартным методом отладки, вставляя в тело скрипта записи примерно такого вида:
echo "1";
print "1";
print_r($array);
print_r($_POST);
var_dump($var);
И тому подобные модели отслеживания процесса преобразований над php переменными.
Все это, несомненно, помогает вникнуть в чужую систему, и разобраться с кодом. Но представьте ситуацию, когда чужая система очень хитро обрабатывает все переменные, таким образом, что нельзя с уверенностью сказать в каком месте появилась переменная и какое имя ей присвоено.
В этот момент хорошо бы как-нибудь узнать весь список переменных PHP, определенных ранее, и вывести его для ознакомления.
Как вывести список определенных переменных
Сделать это можно с помощью функции get_defined_vars(), например таким образом:
<?
echo “<pre>” ;
print_r(get_defined_vars());
echo “</pre>”;
?>
Эта функция get_defined_vars(), вернет многомерный массив, содержащий список всех определенных пользовательских и серверных переменных, в той области видимости, в которой была вызвана.
Для того чтобы получить лишь список названий доступных переменных, можно использовать такую конструкцию:
<?
echo "<pre>";
print_r(array_keys(get_defined_vars()));
echo "</pre>";
?>
Согласитесь это очень удобно, знать имена и значения только тех переменных, которые доступны именно в месте вывода.
Кроме get_defined_vars(), может пригодиться вывод глобального массива $GLOBALS для получения данных о данных содержащихся в массивах $_POST, $_GET, $_COOKIE, $_FILES, $_SESSION, $_SERVER, $_ENV .
<?
echo "<pre>" ;
print_r($GLOBALS);
echo "</pre>";
?>
Теперь вы уважаемые читатели знаете, как просто можно осуществить вывод всех переменных, и спокойно изучать cписок переменных php, не тратя кучу времени, на ручную работу, по отслеживанию объявлений