显示行号
|
选择喜欢的代码风格
默认
GitHub
Dune
LakeSide
Plateau
Vibrant
Blue
Eighties
Tranquil
三元运算符是压缩代码的好方法,但通常过多使用。 虽然三元运算符可以堆叠/嵌套,但建议每行使用一个以提高可读性。
$a = 5;
echo ($a == 5) ? 'yay' : 'nay';
相比之下,三元运算,是一个牺牲可读性,以减少行数的方式。
//多个嵌套,牺牲了可读性
echo ($a) ? ($a == 5) ? 'yay' : 'nay' : ($b == 10) ? 'excessive' : ':(';
要使用三元运算符“返回”值,请使用正确的语法。下面的第一个例子会报错:
PHP Parse error: syntax error, unexpected T_RETURN
$a = 5;
echo ($a == 5) ? return true : return false; //报错
// vs
$a = 5;
return ($a == 5) ? 'yay' : 'nope'; // return 'yay'
在PHP的三元运算符里,其实不用显式的使用 return 来返回布尔值,下面是修正的代码:
$a = 3;
//如果 $a == 3 return true 或者 false
return ($a == 3) ? true : false;
// vs
$a = 3;
return $a == 3; //如果 $a == 3 return true 或者 false
对于所有操作(===,!==,!=,==等)都适用。
三元运算符的括号
当使用三元运算符时,括号可以发挥其作用以提高代码可读性,并在语句块中包含联合。 不需要使用包围的示例是:
$a = 3;
return ($a == 3) ? "yay" : "nope"; // return yay or nope if $a == 3
// vs
$a = 3;
return $a == 3 ? "yay" : "nope"; // return yay or nope if $a == 3
包围还为我们提供了在语句块中创建联合的能力,其中块将作为整体进行检查。 如下面这个例子,如果两个($a == 3 and $b == 4)都为真且 $c == 5 也为真,则返回 true。
return ($a == 3 && $b == 4) && $c == 5;
另一个例子是下面的片段,如果($a!= 3 and $b!= 4)或者 $c == 5,它将返回 true。
return ($a != 3 && $b != 4) || $c == 5;
从PHP 5.3开始,可以省略三元运算符的中间部分。 如果expr1的计算结果为TRUE,则表达式“expr1?:expr3”返回expr1,否则返回expr3。
扩展阅读:
变量声明
有时,编码器通过声明具有不同名称的预定义变量来尝试使其代码“更清晰”。 实际上,这实际上是将所述脚本的内存消耗加倍。 对于下面的示例,让我们说一个示例文本字符串包含1MB的数据,通过复制您已将脚本执行增加到2MB的变量。
$about = '这里是一段超长超大的文本字符串..'; // 2MB 内存
echo $about;
// vs
echo '这里是一段超长超大的文本字符串..'; // 1MB 内存
扩展阅读PHP开发中的一些奇淫巧技(需要有点英文的阅读能力):
发表评论