php三元运算符get出错,PHP 三元运算符

显示行号

|

选择喜欢的代码风格

默认

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开发中的一些奇淫巧技(需要有点英文的阅读能力):

发表评论

你可能感兴趣的:(php三元运算符get出错)