需要 PHP 运算符(operator)帮助

标签 php

我来自 C++ 背景,是 php 的新手,请有人帮助我了解两者之间的区别:

$totalupdatedrows = (count($rows) == 1 and !isset($rows[0]->updated_by))  ? 0 : count($rows);


$totalupdatedrows = count($rows) == 1 and !isset($rows[0]->updated_by)  ? 0 : count($rows);

假设 count($rows) = 1 且 $rows[0]->updated_by=null。请注意,第一个只有一个额外的包装括号。

我从第一个语句中得到了正确的结果。我期望得到 0 的结果,这是第一个结果,而不是第二个结果。我无法弄清楚其中的区别。

最佳答案

具有较低的precedence比三元运算符(?:)。因此,您需要将其括在括号中(()),以便首先对其进行求值。

请注意,如果您使用了 &&,则无需使用额外的括号。

关于需要 PHP 运算符(operator)帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8599566/

相关文章:

php - PHP 和 MySQL 可以提供动态 ogg 文件吗

php - cURL + Laravel Valet + dnsmasq 不工作

php - 使用外部脚本从具有不同数据库的多个 wordpress 站点获取前缀

javascript - PHP 中的 URL 编码正斜杠

php - 使用 php 和 mysqli 保存到 mysql 数据库

php - 在php中制作动态下拉菜单粘性

php - 使用 PHP 将数字舍入到最接近的 0.2

javascript - 无法使用 ajax 将值传递给 Codeigniter Controller

php - 如何制作包含引号等字符的 Web 服务器 URL?

php - Android 无法正确连接 MySQL 数据库