its*_*_me 53 php if-statement conditional-statements
现行代码:
<?php
// See the AND operator; How do I simplify/shorten this line?
if( $some_variable !== 'uk' && $some_variable !== 'in' ) {
// Do something
}
?>
Run Code Online (Sandbox Code Playgroud)
和:
<?php
// See the OR operator; How do I simplify/shorten this line?
if( $some_variable !== 'uk' || $some_variable !== 'in' ) {
// Do something else
}
?>
Run Code Online (Sandbox Code Playgroud)
是否有更简单(即更短)的方式来编写这两个条件?
注意:是的,它们是不同的,我期待缩短代码的不同方法.
And*_*erj 104
为了您的第一个代码,你可以用很短的改变由@ShankarDamodaran给出的答案使用in_array():
if ( !in_array($some_variable, array('uk','in'), true ) ) {
Run Code Online (Sandbox Code Playgroud)
是相同的:
if ( !in_array($some_variable, ['uk','in'], true ) ) {
Run Code Online (Sandbox Code Playgroud)
......但更短.特别是如果你比较'uk'和'in'更多.我没有使用额外的变量(Shankar使用$ os),而是在if语句中定义数组.有些人可能会发现它很脏,我发现它很快又整洁:D
您的第二个代码的问题是,它可以很容易地与TRUE交换,因为:
if ( $some_variable !== 'uk' && $some_variable !== 'in' ) {
Run Code Online (Sandbox Code Playgroud)
等于
if (true) {
Run Code Online (Sandbox Code Playgroud)
你问的是字符串的值是不是A还是不是B.如果它是A,它肯定不是B,如果它是B,它绝对不是A.如果它是C或字面上的任何其他东西,它是也不是A而不是B.所以这句话总是(不考虑schrödingers法律)返回true.
Sha*_*ran 17
你可以in_array()在PHP中使用.
$os = array("uk", "us"); // You can set multiple check conditions here
if (in_array("uk", $os)) //Founds a match !
{
echo "Got you";
}
Run Code Online (Sandbox Code Playgroud)