gpt4 book ai didi

php - !$variable = $variable inside if

转载 作者:行者123 更新时间:2023-12-04 16:09:18 26 4
gpt4 key购买 nike

我一直在啃 PHP 套接字服务器和客户端的基础知识 here .

然后我偶然发现了这些行(摘自上面链接的第一个示例,发生在 while 中):

if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
echo "socket_read() failed: reason: " . socket_strerror(socket_last_error($msgsock)) . "\n";
break 2;
}

if (!$buf = trim($buf)) {
continue;
}

我对读取部分没意见,并关闭连接以防读取错误。

但是下一个if让我抓狂。
首先,我对如何以及需要如何为 bool 值赋值感到困惑。
其次,我很难完全理解整个表达式。

有人可以解释一下 if 内部发生了什么,以及它如何应用于服务器上下文吗?

附言如果问题没有正确提出,请原谅。我对那里发生的事情感到很困惑,不知 Prop 体要问什么。

最佳答案

在这个语句中,没有对 bool 值的赋值。我们正在比较 false 的类型和 false 的值(true false,不仅仅是 0)。你可以读到那个 here

if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ)))

然后

if (!$buf = trim($buf)) {
continue;
}

这是一样的

$buf = trim($buf);
if ($buf == false) {
continue;
}

所以,解释一下原文:

// The assignment happens first and then we're checking the boolean value
if (!$buf = trim($buf))

关于php - !$variable = $variable inside if,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15832530/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com