使用 PHP if else 執行條件式 HTML / JavaScript / CSS / 其他語言程式碼的簡單方法
<?php if (condition): ?>
條件為真時執行的 HTML 程式碼
<?php else: ?>
條件為假時執行的 HTML 程式碼
<?php endif ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
if
結構是許多語言最重要的功能之一,PHP 亦然。它允許程式碼片段的條件式執行。PHP 的 if
結構與 C 語言的類似。
if (expr) statement
如表達式章節所述,表達式會被評估為其布林值。如果 表達式 的評估結果為 true
,PHP 將會執行 陳述式;如果評估結果為 false
,則會忽略它。更多關於哪些值會評估為 false
的資訊,可以在「轉換為布林值」章節中找到。
如果 $a 大於 $b,以下範例將會顯示 a 大於 b
<?php
if ($a > $b)
echo "a is bigger than b";
?>
通常您會希望根據條件執行多個敘述。當然,不需要用 `if` 子句包覆每個敘述。您可以將多個敘述組成一個敘述群組。例如,如果變數 $a 大於變數 $b,這段程式碼會顯示 a is bigger than b,然後將 $a 的值賦予 $b。
<?php
if ($a > $b) {
echo "a is bigger than b";
$b = $a;
}
?>
`if` 敘述可以無限巢狀於其他 `if` 敘述中,這為您提供了程式各個部分條件式執行的完全彈性。
使用 PHP if else 執行條件式 HTML / JavaScript / CSS / 其他語言程式碼的簡單方法
<?php if (condition): ?>
條件為真時執行的 HTML 程式碼
<?php else: ?>
條件為假時執行的 HTML 程式碼
<?php endif ?>
&& 運算子的從左到右求值有一個有用的特性:在遇到第一個「false」運算元後,求值就會停止。
此特性可用於建立以下結構
不會對 $someVar==123 進行求值,因此不會出現「未定義的變數 $someVar」等警告
<?php
// $someVar=123; - 註釋行
if ((!empty($someVar))&&($someVar==123))
{
echo $someVar;
}
?>
不會呼叫函式 someFunc($someVar)
<?php
// $someVar=123; - 註釋行
if ((!empty($someVar))&&(someFunc($someVar)))
{
echo $someVar;
}
?>
這會產生「警告:未定義的變數 $someVar」錯誤。順序很重要
<?php
// $someVar=123;
if ((someFunc($someVar))&&(!empty($someVar)))
{
echo $someVar;
}
?>
您可以在單個 if 陳述式中使用額外的括號來建立「巢狀」if 陳述式。
例如,不要這樣寫
<?php
if( $a == 1 || $a == 2 ) {
if( $b == 3 || $b == 4 ) {
if( $c == 5 || $ d == 6 ) {
//在這裡執行某些操作。
}
}
}
?>
您可以簡單地這樣做
<?php
if( ($a==1 || $a==2) && ($b==3 || $b==4) && ($c==5 || $c==6) ) {
//在這裡執行該操作。
}
?>
希望這個有幫助!
回覆:#80305
再次對新手很有用
如果您需要將變數與值進行比較,而不是這樣做
<?php
if ($foo == 3) bar();
?>
請這樣做
<?php
if (3 == $foo) bar();
?>
這樣,如果您忘記一個 =,它會變成
<?php
if (3 = $foo) bar();
?>
然後 PHP 會回報錯誤。
另一種控制方法是三元運算子(請參閱比較運算子),其用法如下
<?php
$v = 1;
$r = (1 == $v) ? 'Yes' : 'No'; // $r 會被設為 'Yes'
$r = (3 == $v) ? 'Yes' : 'No'; // $r 會被設為 'No'
echo (1 == $v) ? 'Yes' : 'No'; // 將會印出 'Yes'
// 從 PHP 5.3 開始
$v = 'My Value';
$r = ($v) ?: 'No Value'; // $r 會被設為 'My Value',因為 $v 的值會被評估為 TRUE
$v = '';
echo ($v) ?: 'No Value'; // 將會印出 'No Value',因為 $v 的值會被評估為 FALSE
?>
以上所有範例中的括號都可以省略。