if示例1
$a = 3;
if($a > 0)
elseif($a == 0)
else
echo '$a<0';
if示例2
$a = 3;
if($a > 0) :
echo '測試結果:';
echo '$a>0';
elseif($a == 0) : // 不能寫成else if
echo '測試結果:';
echo '$a==0';
else :
echo '測試結果:';
echo '$a<0';
endif; // 這裡必須有乙個分號
if示例3
<?php
$var = 10;
if($var > 0) else
?>
if示例4
<?php
$var = 10;
if($var > 0) :
?>
var > 0
<?php
else :
?>
var <= 0
<?php
endif;
?>
while示例1
$var = 0;
while($var < 10)
$var = 0;
while($var < 10) :
echo $var;
$var++;
endwhile;
while示例2
<?php
$var = 0;
while($var < 10)
?>
<?php
$var = 0;
while($var < 10) :
?>
ppp<?php
$var++;
endwhile;
?>
for示例1
for($i=0; $i<10; $i++)
for($i=0; $i<10; $i++) :
echo $i;
endfor;
for示例2
<?php
for($i=0; $i<10; $i++)
?>
<?php
for($i=0; $i<10; $i++) :
?>
ppp<?php
endfor;
?>
$var = 0;
dowhile($var < 10);
do-while沒有冒號代替語法
$arr = [1,2,3];
foreach($arr as &$val) // 引用方式遍歷,可修改陣列元素
unset($val); // 消除引用
foreach($arr as $key => $val) : // 可同時遍歷到鍵和值
echo $key." => ".$val."\n";
endforeach;
當 foreach 開始執行時,陣列內部的指標會自動指向第乙個單元。這意味著不需要在 foreach 迴圈之前呼叫 reset()。
foreach只是方便遍歷,如果不使用foreach,也可以用其它迴圈進行代替,例如:
$arr = [1,2,3];
foreach($arr as $key => $val) :
echo $key." => ".$val."\n";
endforeach;
// 等價於...
$arr = array(1, 2, 3);
reset($arr);
while (list($key, $val) = each($arr))
其中,reset()函式將陣列的內部指標指向第乙個單元。each()函式返回陣列中當前的鍵/值對並將陣列指標向前移動一步。
對於多維陣列,foreach第一層遍歷到的將是一下一層的陣列,此時需要多層foreach迴圈,也可以使用list()直接提取到陣列元素:
$arr = [
[1,3,5,7],
[2,4,6,8]
];foreach($arr as list($a, $b, $c, $d))
echo $a.$b.$c.$d."\n";
foreach注意事項:
1.foreach 僅能夠應用於陣列和物件,如果嘗試應用於其他資料型別的變數,或者未初始化的變數將發出錯誤資訊。
2.由於 foreach 依賴內部陣列指標,在迴圈中修改其值將可能導致意外的行為。
3.引用方式的遍歷僅在被遍歷的陣列可以被引用時才可用(例如是個變數)。
4.引用試試遍歷時,最後乙個元素的 $value 引用在 foreach 迴圈之後仍會保留。建議使用 unset() 來將其銷毀。
5.foreach 不支援用"@"來抑制錯誤資訊的能力。
$arr = [
[1,2,3,4],
[5,6,7,8]
];foreach($arr as $x)
}// 輸出: 1 3 5
break和continue都可以帶上乙個可選的引數,以指定命令針對第幾層迴圈,預設情況下引數為1,表示當前層。引數不能使用變數,也不能是0或其他非法值,否則出錯。
$a = 3;
$b = 4;
$c = 4;
switch(4)
switch(4) :
case $a:
echo '$a';
break;
case $b:
echo '$b'; // 執行
break;
case $c:
echo '$c';
break;
default:
break;
endswitch;
注意,switch和第乙個 case 之間的任何輸出(含空格)將導致語法錯誤
<?php
$var = 5;
switch($var)
?>
注意事項:
1.continue 語句作用到 switch 上的作用類似於 break。如果在迴圈中有乙個 switch 並希望 continue 到外層迴圈中的下一輪迴圈,用 continue 2。
2.case 表示式可以是任何求值為簡單型別的表示式,即整型或浮點數以及字串。不能用陣列或物件,除非它們被解除引用成為簡單型別。
3.switch表示式與case表示式的比較使用==而不是===
4.case表示式不要求是常量表示式
5.case和default之後可以使用分號來代替冒號
如果比較乙個數字和字串或者比較涉及到數字內容的字串,則字串會被轉換為數值並且比較按照數值來進行。在switch中,要特別注意:
switch("a")
php 中的 goto 與c語言中的 goto 類似,目標位置只能位於同乙個檔案和作用域,也就是說無法跳出乙個函式或類方法,也無法跳入到另乙個函式。也無法跳入到任何迴圈或者 switch 結構中。可以跳出迴圈或者 switch,通常的用法是用 goto 代替多層的 break。
PHP中的流程控制
if else if elseif elseelse if和elseif句法分析的含義有少許區別,但是底線是兩者會產生完全一樣的行為 while do while for foreach as 可以接受乙個可選的數字引數來決定跳出幾重迴圈 switch 允許使用分號代替 case 語句後的冒號 sw...
PHP中的流程控制
任何php指令碼都是由一系列的語句構成的。一條語句可以是乙個賦值語句,乙個函式呼叫,乙個迴圈,乙個條件語句或者是乙個空語句。也可以使用 將一組語句封裝成乙個語句組。if exp 執行一條語句 if exp if else語句 if elseif語句 if elseif.else語句 if巢狀形式 i...
php流程控制
流程 1 if statements if expression i a 5 i b 4 if i a i b elseif i a i b else 2 邏輯運算子 i a 5 i b 4 i c 6 i d 7 if i a i b i c i d if i a i b i c i d 3 sw...