PHP spot如果返回值是引用或false

时间:2015-07-01 13:31:16

标签: php reference

我有以下功能来修改对象的属性。它也可以在几个级别上修改对象中数组中的数组。

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 函数的返回值是否为引用或其他内容?

1 个答案:

答案 0 :(得分:0)

您可以将getPath拆分为2个函数:第一个用于检查路径是否存在,另一个用于获取对路径的引用。

或者您可以尝试此解决方案:How to check if variable was passed by reference in PHP