我有以下功能来修改对象的属性。它也可以在几个级别上修改对象中数组中的数组。
public function setProperty($path, $value=null) {
$path=&$this->getPath($path);
if ($path === false) return;
else $path=$value;
}
getPath搜索要修改的值。逻辑如下:
例如,我发送一个路径到这个函数attributes->ids->first
,如果路径存在,它会搜索对象(即对象有一个名为attributes的数组,它有一个名为ids的数组,它有一个名为first的键)。如果是,则返回对此变量的引用,并在下面进行更改。如果没有,则返回false并退出我的代码。
问题是,我不知道如何检查this->getPath
函数的返回值是否确实是引用,或者函数无法找到路径,并返回false。这样,如果我想要更改的变量的初始值为false,则脚本将退出if ($path === false) return;
部分。
如何检查 this->getPath
函数的返回值是否为引用或其他内容?
答案 0 :(得分:0)
您可以将getPath拆分为2个函数:第一个用于检查路径是否存在,另一个用于获取对路径的引用。
或者您可以尝试此解决方案:How to check if variable was passed by reference in PHP