gpt4 book ai didi

php - 不能在写上下文中使用方法返回值

转载 作者:IT老高 更新时间:2023-10-28 11:36:21 26 4
gpt4 key购买 nike

我认为下面的代码应该可以工作,但它没有(已编辑:现在在 PHP 5.5+ 中工作):

if (!empty($r->getError()))

getError() 很简单:

public function getError()
{
return $this->error;
}

但我最终得到了这个错误:

can't use method return value in write context

这是什么意思?这不就是读书吗?

最佳答案

empty() 需要通过引用来访问值(以检查该引用是否指向存在的东西),5.5 之前的 PHP 不支持对函数返回的临时值的引用.

但是,您真正遇到的问题是您根本使用 empty(),错误地认为“empty”值与“false”有任何不同。

Empty 只是 !isset($thing) || 的别名!$东西。当你检查的东西总是存在时(在 PHP 中函数调用的结果总是存在),empty() 函数只是一个否定运算符

PHP 没有空的概念。评估为假的值是空的,评估为真的值是非空的。这是同一件事。这段代码:

$x = something();
if (empty($x)) …

还有这个:

$x = something();
if (!$x) …

在所有情况下对所有数据类型都有相同的结果(因为 $x 已定义 empty() 是多余的)。

方法的返回值始终存在(即使你没有return语句,返回值也存在并且包含null)。因此:

if (!empty($r->getError()))

逻辑上等价于:

if ($r->getError())

关于php - 不能在写上下文中使用方法返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1075534/

26 4 0
文章推荐: ios - xcode storyboard Container View - 如何访问 View Controller
文章推荐: java - 如何找出每个对象在 ArrayList 中的类型?