PHP中控制結構
1、if/else控制結構
if(expr){
statement 1
}
else if(expr){
statement 2
}
else if(expr){
statement 3
}
……
else{
statement n
}
b、結構模式二if(expr):
statement 1
elseif(expr):
statement 2
elseif(expr):。
statement 3
……
else
statement n
end if;
c、需要指出的是,(ˇˍˇ) java、c等語言一般都採用結構一。php中兩種模式都可以採用。注意其中else if和elseif的區別
<?php
$a=1;
$b=2;
if($a==$b):
echo '$a = $b';
echo ' see1?';
elseif($a>$b):
echo '$a > $b';
echo ' see2?';
else: //這裏執行else 將輸出 $a < $b see3?
echo '$a < $b';
echo ' see3?';
endif;
echo '<br />'; //換行
$a=3;
if($a==$b){
echo '$a = $b';
echo ' see4?';
}
else if($a > $b){ //這裏將執行,將輸出 $a > $b see5?
echo '$a > $b';
echo ' see5?';
}
else{
echo '$a < $b';
echo ' see6?';
}
?>
2、while控制結構
while(expr){
statement
}
b、結構模式二:當expr爲true時執行,這是一種php中的替代語法while(expr):
statement
endwhile;
c、結構模式三,do/while循環,先執行語句後檢查條件
do{
statement
}while(expr);
實驗時間<?php
$count = 0;
while($count<=10){
echo $count;
echo " "; //輸出一個空格
$count++;
}
//以上將輸出 0 1 2 3 4 5 6 7 8 9 10
//接下來測試替代語法
$count = 0; //重置0
echo "<br />"; //換行
while($count<=5):
echo $count;
echo " "; //輸出一個空格
$count++;
endwhile;
//以上將輸出 0 1 2 3 4 5
$count = 0; //重置0
echo "<br />"; //換行
do{
echo $count;
echo " "; //輸出一個空格
$count++;
}while($count<=5);
//以上將輸出 0 1 2 3 4 5
/********看看一下while和do/while兩種循環的區別**********/
echo "<br />"; //換行
$count=0;
while($count>0){
echo "see1?"; //不執行
}
$count=0;
do{
echo "see2?"; //執行了一次,do/while循環最少執行一次循環內部的語句
}while($count>0);
?>
3、for控制結構
for(expr1;expr2;expr3){
statement
}
b、結構模式二for(expr1;expr2;expr3):
statement
endfor;
c、TRUE
,則繼續循環,執行嵌套的循環語句。如果值爲FALSE
,則終止循環;foreach (array_expression as $value){
statement
}
foreach (array_expression as $key => $value){
statement
}
每次執行forech時,數組內部的指針都會重新指向第一個單元,所以沒必要擔心執行一次後指針索引到哪了實驗時間
<?php
for($count=0;$count<10;$count++){
echo $count;
echo " "; //空格
}
//以上輸出 0 1 2 3 4 5 6 7 8 9
echo "<br />"; //換行
for($count=0;$count<5;$count++):
echo $count;
echo " "; //空格
endfor;
//以上輸出 0 1 2 3 4
echo "<br />"; //換行
$arr=array(1,2,3,4);
foreach ($arr as $value){
echo $value;
echo " "; //空格
}
//以上輸出 1 2 3 4
echo "<br />"; //換行
foreach ($arr as $key => $value){
echo $key."->".$value;
echo " "; //空格
}
//以上輸出 0->1 1->2 2->3 3->4
/*************以下測試foreach遍歷對象**************/
echo "<br />"; //換行
class Person{
public $name="cyxl";
private $age=26;
public function loop(){
foreach($this as $key => $val){
echo $key."->".$val;
echo " "; //空格
}
}
}
$p=new Person;
foreach($p as $key => $val){
echo $key."->".$val;
echo " "; //空格
}
//以上輸出 name->cyxl
echo "<br />"; //換行
$p->loop(); //輸出 name->cyxl age->26
//想想兩次遍歷對象$p爲什麼結果不一樣,如果有面向對象知識基礎的,
//可以看看$name和$age前面的兩個修飾符public和private的區別.沒有
//也沒關係,後面我們將對象時會詳細講到的
?>
4、swith控制結構
switch(expr){
case val1:
statement
break;
case val2:
statement
break;
……
default:
statement
}
b、結構模式二,替代語法
switch(expr):
case val1:
statement
break;
case val2:
statement
break;
……
default:
statement
endswitch;
c、以上模式爲一般模式,其中statement、break;、default等是可選的
<?php
$i=0;
switch ($i) {
case 0:
echo "i equals 0<br />";
case 1:
echo "i equals 1<br />";
case 2:
echo "i equals 2<br />";
}
//以上將輸出
/*
i equals 0
i equals 1
i equals 2
*/
switch ($i) {
case 0:
echo "i equals 0<br />";
break; //我們加上break比較一下輸出結果
case 1:
echo "i equals 1<br />";
break;
case 2:
echo "i equals 2<br />";
break;
}
//以上將輸出 i equals 0
$name="jack";
switch($name):
case "lily"; //用分號代替冒號
echo "name is lily<br />";
break;
case "jack";
echo "name is jack<br />";
break;
default;
echo "defautl name<br />";
break;
endswitch;
//以上輸出 name is jack
$name="";
switch($name):
case "lily";
echo "name is lily<br />";
break;
case "jack";
echo "name is jack<br />";
break;
default;
echo "defautl name<br />";
break;
endswitch;
//以上輸出 defautl name
?>
5、goto控制結構
<?php
$count=10;
while($count>0){
$count--;
if($count==5){
goto end;
}
echo "count to ".$count;
echo "<br />";
}
//以上將輸出
/*
count to 9
count to 8
count to 7
count to 6
game over..
*/
end:
echo "game over...";
?>
6、其他
<?php
$count=10;
while($count>0){
$count--;
if($count==8){
continue; //執行下一次循環
}
if($count==5){
break; //直接跳出循環
}
echo "count to ".$count;
echo "<br />";
}
//以上輸出結果如下
/*
count to 9
count to 7
count to 6
*/
function calc($a,$b){
return $a + $b; //返回相加的結果,結束當前函數
}
echo(calc(1,2)); //輸出結果3
return; //結束主腳本的運行
echo "see?"; //不再執行輸出
?>