PHP 判断返回值是引用还是false

PHP spot if returned value is a reference or false

我有以下修改对象 属性 的函数。它还会下降几个级别以修改对象中数组中的数组。

public function setProperty($path, $value=null) {
    $path=&$this->getPath($path);
    if ($path === false) return;
    else $path=$value;
}

getPath 搜索要修改的值。逻辑如下:

例如,我将路径发送到此函数 attributes->ids->first 如果路径存在则搜索对象(即对象有一个名为 attributes 的数组,它有一个名为 ids 的数组,它有一个键先命名)。如果是这样,它 return 是对该变量的引用,我在下面对其进行了更改。如果没有,它 return 为假,我的代码退出。

问题是,我不知道如何检查 this->getPath 函数的 return 值是否确实是引用,或者函数找不到路径,并且 return编错了。这样,如果我想要更改的变量的初始值为 false,脚本将在 if ($path === false) return; 部分退出。

如何检查 this->getPath 函数的 return 值是引用还是其他?

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

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