在其他人编写的项目中工作时,有一个函数可以检索一些数据,它的返回是带有数据的数组。
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;
}
类似的东西...如果数据在脚本执行期间没有更改,它将为您工作。但我建议你修复你的代码。