PHP 中的問號符號
在 PHP 中,問號 ?
運算子稱為三元運算子或條件三元運算子。本文將深入探討 PHP 中的三元運算子。
PHP 中三元運算子簡介
三元運算子是其中一種,因為它只需要三個運算元。
- 第一個運算元是要計算的表示式。通常,比較引數。它返回一個布林值。
- 第二個運算元是第一個表示式返回真值時要執行的表示式。
- 如果第一個表示式返回 false 值,則將評估第三個表示式。
問號符號 ?
將要計算的表示式與其餘表示式分開。此外,冒號:
用於分隔第二個和第三個運算元。
語法:
expression1?expression2:expression3
參考上面的語法示例,如果 expression1
將返回 true
,則 expression2
將執行。如果 expression1
計算出 false
,則 expression3
將執行。
例如,建立一個變數 $ran_num
並將其分配給一個表示式。該表示式使用 rand(0,10)
函式並比較它是否大於 5
。
接下來,使用三元運算子,其中 $ran_num
變數是要計算的表示式。然後,為第二個表示式寫 heads
,為第三個表示式寫 tails
。
因此,下面示例中顯示的程式碼片段將列印 heads
或 tails
。
示例程式碼:
<?php
$ran_num = (rand(0,10))>5;
echo $ran_num ?"heads":"tails";
?>
輸出:
tails
我們可以使用三元運算子來代替 if-else
結構來縮短程式碼長度並提高可讀性。我們可以使用它來編寫更簡單的條件表示式。
示例程式碼:
<?php
$count = (true) ? 1 : 0;
if (true)
{
$count = 1;
}
else
{
$count = 0;
}
echo $count;
?>
輸出:
1
但是,當我們連結或巢狀三元運算子時,可能不容易閱讀程式碼。三元運算子的另一個缺點是很難除錯程式碼,因為我們不能在子表示式中放置斷點。
在 PHP 中使用三元運算子評估 True
和 False
表示式
我們將研究三元運算子的用法。下面的示例將評估 true
表示式並相應地執行程式碼塊。
canVote()
函式將確定一個人是否可以投票。首先,變數 $age
是否大於或等於 18
。
接下來,我們以 21
的值作為引數呼叫 canVote()
函式,這是一個合法的投票年齡。在這裡,表示式被評估為 true
,然後執行第二個。
示例程式碼:
<?php
function canVote($age){
echo $age>=18 ?"you can vote": "you cannot vote";
}
canVote(21);
?>
輸出:
you can vote
在下一個示例中,如果我們提供小於 18 的值,則比較表示式將被評估為 false
。因此,將顯示第三個表示式 you cannot vote
。
示例程式碼:
<?php
function canVote($age){
echo $age>=18 ?"you can vote": "you cannot vote";
}
canVote(17);
?>
輸出:
you cannot vote
在其他情況下,要表達的評估將返回 false
值。例如,如果表示式返回一個 null
值、Nan
、0
或 empty
值,則該表示式將返回一個 false
值。
以下示例顯示了 falsy
值的條件。當計算這些值時,三元運算子將執行第三個表示式。
示例程式碼:
<?php
function Car($name){
echo $name?$name:"no name";
echo "<br>";
}
Car("Tesla");
Car(null);
Car("");
Car(0);
?>
輸出:
Tesla
no name
no name
no name
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn