我基本上有这个PHP代码:
<?php
$num_1 = $_POST['num_1'];
if( $num_1 == 1 || $num_1 == 2 ){
// Do something
}
?>
我知道$num_1
可以是1
或2
。这是我期望$_POST['num_1']
我想知道的是,我可以使用或使用if( $num_1 == 1 || $num_1 == 2 )
而不是<?php
$num_1 = $_POST['num_1'];
if( $num_1 == ( 1 || 2 ) ){
// Do something
}
?>
使用:
if( $num_1 == 1 || $num_1 == 2 ){}
此处的不同之处在于之前我使用的是if( $num_1 == ( 1 || 2 ) ){}
,但现在我正在使用{{1}}
我试图绕过这个。有人能提供有用的解释吗?哪个更有效率和最佳实践?
答案 0 :(得分:2)
不一样。您可以通过执行类似的操作来测试它:
$num_1 = 1;
var_dump($num_1 == ( 1 || 2 )); //true
var_dump($num_1 == 1 || $num_1 == 2); //true
$num_1 = 2;
var_dump($num_1 == ( 1 || 3 )); //true
var_dump($num_1 == 1 || $num_1 == 3); //false
这样做的主要原因是当你试图这样做时:
if(1 || 2)
PHP会将整数转换为布尔值。所以,你的表达成为:
if(true||true) //what is actually true