php+逻辑运算优选级,关于php:逻辑布尔否定运算符的优先级和关联

这是我在StackOverflow上遇到的第一个问题,因此我想以前曾在这里问过这个问题,但是我在搜索栏中键入的所有内容都给了我不同的问题。 (或者有时根本没有结果!)

我正在w3Schools上学习,但是我看到了这个看似简单的代码片段,激起了一小部分问题:

本质上,代码说:

if(! test === FALSE)

display("test successful!");

else

display("test failed...")

在这种特殊情况下,"测试"在成功时返回字符串,在失败时返回(布尔)FALSE。

这是我内心深思的问题。

至于条件/ if语句开头的感叹号(又称"逻辑非"又称"否定运算符")是:

A)应用于括号内的整个语句吗?

B)仅与"测试"相关?

注意:在这种情况下,否定运算符的关联性可能不会更改结果,但在以下情况下它的关联性很重要:(!FALSE || TRUE),是吗?

我了解Negation运算符对布尔值的工作方式,但是当遇到(PHP)字符串时Negation运算符的行为如何?

A)如果字符串碰巧是"真"或" 0"之类的东西,否定运算符的行为是否会改变?

(!test === FALSE)是否与(test!== FALSE)相同?他们为什么不只使用"!=="?

这里是有问题的实际代码:

if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {

echo("$email is a valid email address");

} else {

echo("$email is not a valid email address");

}

进一步的PHP问题:在这种情况下,使用filter_var()优于filter_input()有什么优势?为什么w3Schools使用filter_var()而不使用filter_input()?

如您所见,PHP的doc运算符具有不同的优先级。 这意味着:!首先应用于$test。

根据文档,空字符串''或'0'将转换为false,否则将转换为true。

不一样 当$test等于空字符串''或'0'时,这两个条件具有不同的行为。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值