PHP中的流程控制

2021-07-04 22:18:15 字數 2136 閱讀 3947

if ()  else if  elseif  else
else ifelseif句法分析的含義有少許區別,但是底線是兩者會產生完全一樣的行為

while () 

do while();

for (;;)

foreach (as)

可以接受乙個可選的數字引數來決定跳出幾重迴圈

switch ()
允許使用分號代替 case 語句後的冒號

switch ($beer)

declare 結構用來設定一段**的執行指令。

目前只認識兩個指令:ticks 以及 encoding

tick(時鐘週期)是乙個在 declare **段中直譯器每執行 n 條可計時的低階語句就會發生的事件。n 的值是在 declare 中的 directive 部分用 ticks=n 來指定的

不是所有語句都可計時。通常條件表示式和引數表示式都不可計時。

tick 代表乙個事件,事件的定義是在register_tick_function,事件的執行頻率是在(ticks=n)。

用途,每執行幾條語句就觸發一次事件,比如記錄事件。這樣可以檢查declare內的php**的執行速度。可以找比較慢的部分發生的**段位置。

<?php

function doticks ()

register_tick_function('doticks');

declare(ticks = 1)

}?>

運算結果:

1

ticksticks4

ticksticks9

ticksticks16

ticksticks25

ticksticks36

ticksticks49

ticksticks64

ticksticks81

ticksticksticksticks

首先完整的for迴圈算乙個語句,但必須要等迴圈結束才算,因此在編譯時for迴圈裡面的echo 算第乙個語句。

所以第乙個doticks是在第乙個echo後執行的,也就是1輸出後才發生第乙個tick事件。 在x

從1到9

的迴圈中

,每個循

環包括兩

個語句,

乙個ec

ho,一

個for

迴圈。在

81輸出後

,因為e

cho是

一條語句

,因此輸

出第乙個

tick

s。同時

x=9的這個for迴圈也結束了,這又是一條語句,輸出第二個ticks;開始$x=10的迴圈,但這時已不滿足迴圈條件,for迴圈執行結束,這個迴圈又是乙個語句,這時輸出第三個ticks。

最後declare本身也算一條語句,所以又輸出第四個ticks。

可以用 encoding 指令來對每段指令碼指定其編碼方式

<?php

declare(encoding='iso-8859-1');

// code here

?>

require 和 include 幾乎完全一樣,除了處理失敗的方式不同之外。require 在出錯時產生 e_compile_error 級別的錯誤,換句話說將導致指令碼中止而 include 只產生警告(e_warning),指令碼會繼續執行。

goto 操作符可以用來跳轉到程式中的另一位置。該目標位置可以用目標名稱加上冒號來標記,而跳轉指令是 goto 之後接上目標位置的標記。

php 中的 goto 有一定限制,目標位置只能位於同乙個檔案和作用域,也就是說無法跳出乙個函式或類方法,也無法跳入到另乙個函式。也無法跳入到任何迴圈或者 switch 結構中。可以跳出迴圈或者 switch,通常的用法是用 goto 代替多層的 break。

<?php

goto a;

echo 'foo';

a:echo 'bar';

?>

PHP中的流程控制

任何php指令碼都是由一系列的語句構成的。一條語句可以是乙個賦值語句,乙個函式呼叫,乙個迴圈,乙個條件語句或者是乙個空語句。也可以使用 將一組語句封裝成乙個語句組。if exp 執行一條語句 if exp if else語句 if elseif語句 if elseif.else語句 if巢狀形式 i...

php中的流程控制

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 ...

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...