我试图找出如何知道对变量做了什么.
这是一个例子:
function a($hello) {
$out .= strtoupper(ucwords(strtolower($hello)));
return $out;
}
echo function_trace('$hello') // returns array(strtoupper,ucwords,strtolower)
Run Code Online (Sandbox Code Playgroud)
谢谢!马特
实际上并不是一种简单的方法,因为变量不存储"状态"或"历史".堆栈跟踪(您可能从中得到灵感)是可能的,因为它们是从现有的执行堆栈生成的,存储是为了能够正确解开函数调用链.
此外,您的示例正在尝试跟踪函数参数 - 但该参数变量仅在函数范围内定义.试图在函数之外引用它会导致解释器不知道你想要指示的变量 - 它认为你正在寻找全局范围的$hello,而不是在函数中用作参数的变量.