Как напечатать имя переменной в PHP? - PullRequest
1 голос
/ 10 февраля 2010

Я пишу простой скрипт для моего webby, который отправит мне электронное письмо в случае ошибки 500. Я хочу сбросить все возможные переменные, сеансы, POST или что-либо еще, присутствующие в момент возникновения ошибки, чтобы я мог проанализировать проблему настолько точно, насколько смогу.

Вот код, который у меня сейчас есть:

function variable_name( &$var ) {
    $var_name = array_search( $var, $GLOBALS );
    return "{$var_name} = \"{$var}\"";
}

$bar = "whatever";

echo variable_name( $bar ); // bar = "whatever"

Он проверяет только $ GLOBALS, но мне нужно что-то, что проверяло бы и печатало также $ _POST, $ _SESSION, поля классов и т. Д. Я немного погуглил и нашел только сложные функции, которые кажутся излишними для такой простой задачи. Есть ли что-нибудь простое для этой цели или мне просто написать функцию для каждого из типов переменных?

Ответы [ 5 ]

5 голосов
/ 10 февраля 2010

использование get_defined_vars():

Эта функция возвращает многомерный массив, содержащий список всех определенных переменных, будь то переменные среды, сервера или переменные, определенные пользователем, в пределах области действия, которую вызывает get_defined_vars ().

это включает $GLOBALS (начиная с PHP 5.0.0), $_POST, $_SESSION и т. Д.

1 голос
/ 10 февраля 2010

как насчет get_defined_vars ? проверьте также get_defined_functions и get_defined_constants

1 голос
/ 10 февраля 2010

Ondrej, попробуйте функцию print_r. Посмотрите в руководстве, иногда это действительно полезно. Обратите внимание, что он также принимает необязательный второй параметр, который полезен, когда вы хотите записать вывод в файл или базу данных, а не просто распечатать его на экране.

1 голос
/ 10 февраля 2010

Вы пробовали get_defined_vars function? http://fr2.php.net/manual/fr/function.get-defined-vars.php

0 голосов
/ 10 февраля 2010

но мне нужно что-то, что бы проверить и распечатайте также $ _POST, $ _SESSION, поля класса и т. д.

Как насчет этого:

function variable_name(&$var) {
    $var_name = array_search( $var, $_POST); // or you can put $_GET, $_SEESION,etc 
    return "{$var_name} = \"{$var}\"";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...