Sta*_*0rz 7 php boolean-logic boolean
如何在PHP中编写以下布尔表达式:
$foo = "";
if($var==TRUE){
$foo = "bar";
}
Run Code Online (Sandbox Code Playgroud)
要么
if($var==TRUE){
$foo = "bar";
}else{
$foo = "";
}
Run Code Online (Sandbox Code Playgroud)
要么
$foo = ($var==TRUE) ? "bar": "";
Run Code Online (Sandbox Code Playgroud)
首先,true
它不是一个常数,它是一个标记,所以请不要大写它(我知道有些标准可以做到这一点,但我认为它混淆了意思)...
其次,你不需要在$var == true
里面进行冗余比较if
.它完全相同if ($var) {
(对于双重==
比较.相同的比较===
需要明确).
第三,我更喜欢预先初始化.所以:
$foo = '';
if ($var) {
$foo = 'one status';
} else {
$foo = 'another status';
}
Run Code Online (Sandbox Code Playgroud)
如果您不需要else分支,只需将其删除即可.我更喜欢预初始化,因为它会强制您初始化变量,并且它会阻止您忘记在其中一个分支中初始化它的情况.此外,当您稍后返回阅读该功能时,它会为您提供类型提示...
对于像这样的简单分支,使用三元语法很好.如果有更复杂的逻辑,我会离开:
$foo = $var ? 'bar' : '';
Run Code Online (Sandbox Code Playgroud)
所有这些工作.这是偏好.我会考虑像第一个例子中那样初始化变量.但对于这个简单的事情,第三种选择在我的书中很好.
此外,如果$ var只是一个布尔值,则第3个不必如此冗长:
$foo = $var ? "bar" : "";
Run Code Online (Sandbox Code Playgroud)