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
我有以下修改对象 属性 的函数。它还会下降几个级别以修改对象中数组中的数组。
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