三元運算符,是軟件編程中的一個固定格式,即( ?: )(注:括號里面的內容才是正確的格式).
語法:條件 ? 結果1 : 結果2
說明:問號前面的位置是判斷的條件,如果滿足條件時結果1,不滿足時結果2.
實例代碼如下:
- <?PHP
- $id = isset($_GET['id']) ? $_GET['id'] : false;
- ?>
一條代碼替代了很多的代碼.首先,它使用isset ()函數,檢查$_GET['id']是否存在.如果$_GET['id']確實存在,它將返回它的價值.但是,如果它不存在,條件即為假,這時返回的是false.$id的值取決于$_GET['id']是否存在.所以,基本上,如果$_GET['id']存在,$id=$_GET['id'],反之$id=false.
用“?:”條件語句檢驗用戶輸入值:
實例代碼如下:
- <?php
- $filename = isset($argv[1]) ? $argv[1] : "php://stdin";
- $fp = @fopen($filename, ‘r’) or die("Can’t Open $filename for reading");
- while (!@feof($fp)) {
- $line = @fgets($fp, 1024);
- print $line;
- }
- @fclose($fp);
- ?>
前面使用三元運算符的代碼和下面的代碼等同:
實例代碼如下:
- <?php
- if (isset($argv[1])) {
- $filename = $argv[1];
- } else {
- $filename = "php://stdin";
- }
- ?>
可以看出,假設用普通的if-else結構寫上述代碼,代碼量會比上面多出許多,但第二種形式更易理解,而且不要求更多的錄入.所以在挑選三元運算符時,請務必權衡一下利弊.
三元運算符優點
PHP中的三元運算符(?:)大大減少了程序員寫這些語句的時間.它的語法如下:
condition ? do_if_true : do_if_false;三元運算符不是一種必不可少的結構,但卻是一種美化代碼的途徑.同樣,它可以取代不好的if…else代碼塊,并且可以提高代碼的可讀性.同樣,用戶可以使用PHP的or運算服賦予變量默認值:
實例代碼如下:
- <?php
- $filename = $argv[1] or $filename = "php://stdin";
- ?>
新聞熱點
疑難解答