php - 逻辑运算符 php true 或 false

标签 php logical-operators

作为一个 php 新手,我尝试阅读很多其他人的代码来学习。 今天我遇到了这样一行:

if ( stripos($post_to_check->post_content, '[' . $shortcode) !== false )

我想知道有什么区别 !==false==true 如果有人可以向我解释这一点,将不胜感激。 ..如果没有真正的区别 - 使用引用的一个而不是另一个的原因是什么??

最佳答案

PHP 是一种松散类型的语言。 == 匹配两个值,=== 匹配值以及值的数据类型。

if (8 == '8') // returns true

以上条件只匹配值而不是数据类型因此 if 评估为 TRUE

if (8 === '8') // returns false

这个检查值和值的数据类型因此这个 if 评估为 FALSE

在需要同时检查值和数据类型的地方使用===,在需要比较值而不是数据类型时使用==

在你的情况下,

stripos 返回子字符串在字符串中的位置,如果没有找到则返回FALSE

if ( stripos($post_to_check->post_content, '[' . $shortcode) !== false )

上面的代码检查字符串中的子字符串,只有在找到子字符串时才求值为 TRUE。 如果你把它改成

if ( stripos($post_to_check->post_content, '[' . $shortcode) != false )

并且当在 0 位置找到子字符串时,即使主字符串中存在子字符串,if 的计算结果也是 FALSE。 那么条件就会变成这样

if ( 0 != false )

这将评估为 FALSE 因为 0 被认为是 FALSE

所以你必须在那里使用 !==

if ( 0 !== false )

这将比较两个值的值和数据类型 值0是整数类型,falseboolean类型,因此这里的数据类型不匹配,条件为

PHP 手册页说明这些 comparison operator你应该检查一次。

关于php - 逻辑运算符 php true 或 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8768958/

相关文章:

php - 需要在 Ubuntu 上使用 PHP 查找网络接口(interface)的 IP 地址

php - 选择表单类型的数组到字符串转换错误

c - 一行代码中的多个逻辑运算符

C 预处理器测试多个宏的定义

php - 将项目总计添加到 PayPal 的订单摘要,以进行完整的购物车付款

php - Laravel:队列作业表修改字段问题

php - 为什么我无法将 mysql 数据库中的时间戳与 php 中的当前时间进行比较?

javascript - 这些逻辑运算是否相同?

Java:将电话键盘上的字母转换为数字

node.js - Jade 中的多个逻辑 OR 运算符