Php can==和!=可以互换使用吗?
关系运算符===(用于等同)能否与!=互换使用操作员“并得到相同的结果?或者,当我执行更大的程序时,我最终会遇到问题吗 我知道我会在下面的例子中得到相同的结果,这是否总是正确的Php can==和!=可以互换使用吗?,php,Php,关系运算符===(用于等同)能否与!=互换使用操作员“并得到相同的结果?或者,当我执行更大的程序时,我最终会遇到问题吗 我知道我会在下面的例子中得到相同的结果,这是否总是正确的 //example 1 <?php $a = 1; //integer $b = '1'; //string if ($a === $b) { echo 'Values and types are same';
//example 1
<?php
$a = 1; //integer
$b = '1'; //string
if ($a === $b) {
echo 'Values and types are same';
}
else {
echo 'Values and types are not same';
}
?>
// example 2
<?php
$a = 1; //integer
$b = '1'; //string
if ($a != $b) {
echo 'Values and types are not same';
}
else {
echo 'Values and types are same';
}
?>
//示例1
//例2
简单的回答是,不,不能交换它们,因为它们检查不同的东西。它们不是等价的运算符
你会想用的==
这基本上意味着要比较的两个值必须是同一类型的
使用==时,如果需要,将对比较的值进行类型转换
如您所知,===还检查类型
当您使用!=,值也是类型转换的,而!==严格地检查值和类型。您本质上是在问!($a!=$b)
是否总是与$a====$b
相同。简单的答案是:不。($a!=$b)
可以归结为$a==$b
,这显然与$a===$b
不同:
php > var_dump(!('0' != 0));
bool(true)
php > var_dump('0' === 0);
bool(false)
!==
显然与==
相反,所以!($a!==$b)
将始终与$a====$b
相同。您为什么要这样做?PHP的运算符本身就很混乱。!=不相等,您需要!==具有不相等且不相同的类型。检查此问题,您将不喜欢使用=
或!=
,我认为这在验证表单和che时很有帮助检查用户是否有特权查看基于特定数据库字段的特定页面。比我快几秒钟:)。这是您的解决方案。它询问如果($a===$b)为真;否则为假;
与如果($a!=$b)为假;否则为真;
,这就是我要解释的。