在其他人编写的项目中工作时,有一个函数可以检索一些数据,它的返回是带有数据的数组。
function getSomedata()
{
//Get some data
return Array();
}
在代码上,这个函数在很多地方都被测试为
if(getSomedata())
getSomedata();
如果不编辑每段代码,如果从 IF 语句调用该函数并返回布尔值而不是带数据的数组,我能否从php获得通知。
在其他人编写的项目中工作时,有一个函数可以检索一些数据,它的返回是带有数据的数组。
function getSomedata()
{
//Get some data
return Array();
}
在代码上,这个函数在很多地方都被测试为
if(getSomedata())
getSomedata();
如果不编辑每段代码,如果从 IF 语句调用该函数并返回布尔值而不是带数据的数组,我能否从php获得通知。
从理论上讲,您可以使用回溯来确定哪些代码调用了一段代码,并阅读和自省代码以确定函数是否在if
语句中被调用。但我什至不打算详细说明如何做到这一点,因为这太疯狂了。
if (function()) function()
是一种反模式,坏掉的代码,坏的,坏的,坏的。你需要纠正这种误用,而不是更加疯狂地与之抗争。如果在很多地方都使用了它,那就硬着头皮修复一次,而不必永远处理它。
我认为您能做的最好的事情就是使用 $GLOBALS 检查数组是否已设置:
function getSomedata()
{
if(!empty($GLOBALS['Arr']))
return $Arr;
//Get some data
return $Arr;
}
类似的东西......如果在脚本执行期间数据没有改变,它会为你工作。但我建议你修复你的代码。