繁体   English   中英

如何在PHP中打印变量名称?

[英]How to print name of variable in PHP?

我正在为我的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,类字段等。我在Google上搜索了一下,发现复杂的功能似乎对这样简单的任务来说是一个过大的功能。 为此有什么简单的方法还是应该为每种变量类型简单地编写一个函数?

使用get_defined_vars()

此函数返回一个多维数组,该数组包含在调用get_defined_vars()范围内的所有已定义变量的列表,这些变量是环境变量,服务器变量或用户定义的变量。

这包括$GLOBALS (自PHP 5.0.0起), $_POST$_SESSION等。

您是否尝试过get_defined_vars function http://fr2.php.net/manual/fr/function.get-defined-vars.php

Ondrej,尝试使用print_r函数。 在手册中查找它,有时确实很有帮助。 请注意,它还带有一个可选的第二个参数,当您要将输出记录到文件或db而不是仅将其打印到屏幕时,该参数很有用。

但我需要一些可以检查并打印$ _POST,$ _ SESSION,类字段等的内容。

这个怎么样:

function variable_name(&$var) {
    $var_name = array_search( $var, $_POST); // or you can put $_GET, $_SEESION,etc 
    return "{$var_name} = \"{$var}\"";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM