php中的三元運算符使用說明
更新時間:2011年07月03日 00:06:10 作者:
今天一個網(wǎng)友在群里發(fā)了個題目不難,但是可能會錯,大家可以看看啊。
今天一個網(wǎng)友在群里發(fā)了個題目不難,但是可能會錯
echo
$a == 1 ? 'one' :
$a == 2 ? 'two' :
$a == 3 ? 'three' :
$a == 4 ? 'foura' : 'other';
echo "\n";
輸出結(jié)果是:
<BR>
結(jié)果是:four
一開始想不明白,按照我的理解,應該是這樣的邏輯:
echo ($a == 1 ? 'one' :
( $a == 2 ? 'two' :
( $a == 3 ? 'three' :
($a == 4 ? 'four' : 'other'))));
輸出為:two
后來在kevinG(qq:48474)的指教下,參看php手冊,終于明白了php的三元符的解釋是從左到右的,
<!--?php
// 乍看起來下面的輸出是 'true'
echo (true?'true':false?'t':'f');
// 然而,上面語句的實際輸出是't',因為三元運算符是從左往右計算的
// 下面是與上面等價的語句,但更清晰
echo ((true ? 'true' : 'false') ? 't' : 'f');
所以上面的可以這樣解釋:
echo (
((($a == 1 ? 'one' :
$a == 2) ? 'two' :
$a == 3 )? 'three' :
$a == 4 )? 'four' : 'other');
其實這個涉及到類型轉(zhuǎn)換:
$a==1=>false=>$a==2?true=>'two'=true=>'three'=true=>'four'
復制代碼 代碼如下:
echo
$a == 1 ? 'one' :
$a == 2 ? 'two' :
$a == 3 ? 'three' :
$a == 4 ? 'foura' : 'other';
echo "\n";
輸出結(jié)果是:
<BR>
結(jié)果是:four
一開始想不明白,按照我的理解,應該是這樣的邏輯:
echo ($a == 1 ? 'one' :
( $a == 2 ? 'two' :
( $a == 3 ? 'three' :
($a == 4 ? 'four' : 'other'))));
輸出為:two
后來在kevinG(qq:48474)的指教下,參看php手冊,終于明白了php的三元符的解釋是從左到右的,
<!--?php
// 乍看起來下面的輸出是 'true'
echo (true?'true':false?'t':'f');
// 然而,上面語句的實際輸出是't',因為三元運算符是從左往右計算的
// 下面是與上面等價的語句,但更清晰
echo ((true ? 'true' : 'false') ? 't' : 'f');
所以上面的可以這樣解釋:
echo (
((($a == 1 ? 'one' :
$a == 2) ? 'two' :
$a == 3 )? 'three' :
$a == 4 )? 'four' : 'other');
其實這個涉及到類型轉(zhuǎn)換:
$a==1=>false=>$a==2?true=>'two'=true=>'three'=true=>'four'
相關(guān)文章
基于PHP實現(xiàn)解密或加密Cloudflar郵箱保護
這篇文章主要介紹了基于PHP實現(xiàn)解密Cloudflar郵箱保護,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06PHP5.4中json_encode中文轉(zhuǎn)碼的變化小結(jié)
在php5.4以前做json_encode的時候中文會被unicode編碼,中文都會被編碼,變成不可讀的,類似“\u***”的格式,接下來介紹幾種5.4之前不進行unicode轉(zhuǎn)碼的處理方法2013-01-01php對關(guān)聯(lián)數(shù)組循環(huán)遍歷的實現(xiàn)方法
這篇文章主要介紹了php對關(guān)聯(lián)數(shù)組循環(huán)遍歷的實現(xiàn)方法,涉及php操作數(shù)組的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03PHP中file_exists與is_file,is_dir的區(qū)別介紹
很顯然file_exists是受了asp的影響,因為asp不但有fileExists還有folderExists,driverExists,那么PHP中file_exists是什么意思呢2012-09-09php操作redis數(shù)據(jù)庫常見方法實例總結(jié)
這篇文章主要介紹了php操作redis數(shù)據(jù)庫常見方法,結(jié)合實例形式總結(jié)分析了PHP操作redis數(shù)據(jù)庫的基本安裝、連接、字符串、哈希表、列表、集合等相關(guān)操作技巧,需要的朋友可以參考下2020-02-02PHP人民幣金額數(shù)字轉(zhuǎn)中文大寫的函數(shù)代碼
在網(wǎng)上看到一個非常有趣的PHP人民幣金額數(shù)字轉(zhuǎn)中文大寫的函數(shù),其實質(zhì)就是數(shù)字轉(zhuǎn)換成中文大寫,測試了一下,非常有趣,隨便輸個數(shù)字,就可以將其大寫打印出來,新手朋友們試一下吧2013-02-02joomla jce editor 解決上傳中文名文件失敗問題
要么上傳失敗,要么傳上去了中文名不能被web訪問,研究了下JCE的源碼,改掉保存文件名的方式,使用純數(shù)字來作為文件名,具體修改如下,遇到類型情況的朋友可以參考下哈2013-06-06