php中的三元运算符?

Bas*_*sic 2 php

可能的重复:
参考 - 这个符号在PHP中意味着什么?
要三元还是不三元?

有人可以解释优点/缺点或使用三元运算符而不是if/else语句.我应该在何时何地使用?

Mik*_*wis 12

三元运算符比else语句更简洁(这对于可写性更好),但是当你使用一个条件时,你应该只使用它们.嵌套的三元运算符确实降低了可读性.

一般来说,我只在以下情况下使用三元运算符:

1)我根据条件分配变量.

2)只有一个条件.

否则它们会变得混乱而且难以维护.

例:

$port = ($secure) ? 443 : 80;
Run Code Online (Sandbox Code Playgroud)

而if if else将是:

if($secure){
  $port = 443;
} else {
  $port = 80;
}
Run Code Online (Sandbox Code Playgroud)

你甚至可以做得更好:

$port = 80;
if($secure){
  $port = 443;
}
Run Code Online (Sandbox Code Playgroud)

但是你可以看到使用一个简单的三元运算符更简洁(因为你可以在更少的'空间'中获得你的想法).

你可能会声称这会降低可读性,但只有一点点,如果有的话.正如我之前所说的,不要对这个操作符发疯,因为它确实会降低可读性,以至于它不值得.请记住,使用编程语言是一种平衡.使用简单的三元运算符更为可写,这是编程语言的一个重要因素.

关于可写性与可读性的关系,我想指出一个具体的例子.

$count++
Run Code Online (Sandbox Code Playgroud)

$count = $count + 1 // or $count += 1
Run Code Online (Sandbox Code Playgroud)

第二个例子最具有可读性,因为你确切地知道发生了什么,但是你会选择做9/10次,$count++因为它简单且可写.