順序控制:程序默認的執行順序
分支控制:單分支,雙分支,多分支
**單分支:**
~~~
if(true){
echo 'abc';
}
//或者
if(true) echo 'abc';
~~~
**單分支替代語法**
在模板中使用
~~~
<?php if ($a < 0): ?>
aaaaaaaaaaaaaaa
<?php else:?>
bbbbbbbbbbbb
<?php endif; ?>
~~~
### if...else分支
### 多分支
~~~
if($age>18){
echo '大于18';
}else if($age>10){
echo '小于18';
}else if($age>1){
echo '小于1';
}
~~~
~~~
<?php if ($a < 10): ?>
<h1>小于10</h1>
<?php elseif($a>10):?>
<h1>大于10</h1>
<?php else:?>
<h1>相等</h1>
<?php endif; ?>
~~~
### switch控制
1. switch和case配合才能使用
2. switch遇到break才會退出,不然會繼續執行下一個case
3. 匹配不到就執行default
4. case的值可以是任何基本類型的表達式
5. case下面的表達式可以為空,這樣會轉移到下一個case
6. case后面的:可以為分號
`case false`
~~~
case 'a';
case 'b';
echo 'a和b都運行這句';
~~~
**switch和if選擇**
* 幾個具體的值,用switch
* 值是范圍用if
### for循環
* 本質上和while循環是一樣的,有初始值,有判斷條件,有步長
* for循環視圖上比while好理解
~~~
for($i=0,$j=0;$i<10,$j<-4;$i++,$j--){
echo 'hello'.$i.'<br/>';
}
~~~
**另一種寫法**
空語句,結構類型while
~~~
$i=9;
for(;$i<10 && $i>5;){
echo '值為'.$i.'<br/>';
$i--;
}
~~~
### while循環
* while是先判斷再循環
* do...while先執行一次,再判斷
~~~
$a=0;
while($a<10){
echo $a.'<br/>';
$a++;
}
~~~
### do...while循環
* 用的沒有for循環多
* 結構和while循環一樣,只是在{}前面加了一個do
### break語句
* 結束當前的循環。
* 可以用于:for,foreach,while,do-while,switch
* break可以接受一個參數,跳出幾重循環
~~~
$i=0;
while(true){
$val=rand(0,1000);
$i++;
if($val==99){
echo $i;
break;
}
}
~~~
~~~
for($i=0;$i<10;$i++){
echo $i;
if($i==9){
break;
}
}
~~~

### continue語句
* 跳過本次循環中剩余代碼,跳出本次循環。執行下一次循環
* continue接收一個參數,跳出幾重循環
~~~
for($i=0;$i<10;$i++){
if($i==5){
continue;
}
echo $i;
}
~~~

### goto語句
* goto只能用于同一個作用域,即無法跳出一個函數或類方法,也無法跳入到另一個函數
* 一般用goto跳出循環,替代多層break;
~~~
goto a;
echo 'aa';
a:
echo 'bb';
~~~