程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中三元運算符用法

php中三元運算符用法

編輯:關於PHP編程

     語法:條件 ? 結果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";
    ?>

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved