條件運算符(Conditional Operator)
完全的程式語言新手建議先了解一下流程控制章節的內容,再回來看這篇文章
條件運算符放在最後介紹,是由於作者個人認為他只能算是流程控制表達式的簡化寫法,不太算是「運算符號」
以下介紹的兩種寫法都是為了將常用且冗長的程式碼簡化成更方便撰寫與閱讀的格式
三元運算符(ternary conditional operator)
首先,先看一下這段程式碼
<?php
if(條件){
動作1;
}
else{
動作2;
}
?>
很清楚的,這邊的程式碼內容為:如果條件是true
,就執行動作1,如果是false
,就執行動作2
使用三元運算符的話,可以簡化成這樣
條件 ? 動作1 : 動作2;
看個例子應該比較好懂~
<?php
//如果$a>5,就把$a改成5,如果$a<=5,就把$a改成0
$a = 10;
if($a > 5){
$a = 5;
}
else{
$a = 0;
}
//可以改寫成以下,先判斷$a>5,true的話回傳5,false回傳0,再將回傳值指定給$a儲存
$a = $a > 5? 5 : 0;
?>
NULL合併運算符(null coalesce operator)
NULL合併運算符和三元運算符有點像,但是用法完全不同
NULL合併運算符是用來確認某個變數是否為null,並在是null時觸發相關的程式碼
舉例來說,通常我們要檢查變數是否為null,如果是null的話就給個預設值,會這樣寫
<?php
$a = null;
if($a == null){
$a = 10;
}
?>
如果用NULL合併運算符寫的話,可以用簡化成這樣的格式:
$變數 ?? 變數非NULL時執行的動作;
實際程式碼:
<?php
$a = null;
//$a是null,就回傳10,給$a儲存,讓$a有預設值
$a = $a ?? 10;
?>
PHP7之後才支援NULL合併運算符(null coalesce operator)