查找调用的函数(从变量的角度来看)

Mat*_*att 0 php debugging

我试图找出如何知道对变量做了什么.

这是一个例子:

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)

谢谢!马特

Amb*_*ber 5

实际上并不是一种简单的方法,因为变量不存储"状态"或"历史".堆栈跟踪(您可能从中得到灵感)是可能的,因为它们是从现有的执行堆栈生成的,存储是为了能够正确解开函数调用链.

此外,您的示例正在尝试跟踪函数参数 - 但该参数变量仅在函数范围内定义.试图在函数之外引用它会导致解释器不知道你想要指示的变量 - 它认为你正在寻找全局范围的$hello,而不是在函数中用作参数的变量.