php 提供了一些流程控制的替代語法,包括 if,while,for,foreach 和 switch。替代語法的基本形式是把左花括號()分別換成endif;,endwhile;,endfor;,endforeach; 以及endswitch;。
elseif與 else if 只有在類似使用花括號的情況下才認為是完全相同。如果用冒號來定義if/elseif 條件,那就不能用兩個單詞的 else if,否則 php 會產生解析錯誤。
foreach 語法結構提供了遍歷陣列的簡單方式。foreach 僅能夠應用於陣列和物件,如果嘗試應用於其他資料型別的變數,或者未初始化的變數將發出錯誤資訊。由於 foreach 依賴內部陣列指標,在迴圈中修改其值將可能導致意外的行為。
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
require 和 include 幾乎完全一樣,除了處理失敗的方式不同之外。require 在出錯時產生 e_compile_error 級別的錯誤。換句話說將導致指令碼中止而 include 只產生警告(e_warning),指令碼會繼續執行。 相應的有require_once,include_once。
被包含檔案先按引數給出的路徑尋找,如果沒有給出目錄(只有檔名)時則按照 include_path 指定的目錄尋找。如果在 include_path 下沒找到該檔案則 include 最後才在呼叫指令碼檔案所在的目錄和當前工作目錄下尋找。如果最後仍未找到檔案則 include 結構會發出一條警告;這一點和 require 不同,後者會發出乙個致命錯誤。
如果定義了路徑——不管是絕對路徑(在 windows 下以碟符或者 開頭,在 unix/linux 下以 / 開頭)還是當前目錄的相對路徑(以 . 或者 .. 開頭)——include_path 都會被完全忽略。例如乙個檔案以 ../ 開頭,則解析器會在當前目錄的父目錄下尋找該檔案。
當乙個檔案被包含時,其中所包含的**繼承了 include 所在行的變數範圍。從該處開始,呼叫檔案在該行處可用的任何變數在被呼叫的檔案中也都可用。不過所有在包含檔案中定義的函式和類都具有全域性作用域。
vars.php
test.php
a is equal to 5
$b):
echo a is bigger than b;
echo ...;
elseif($a == $b):
echo a is equals b;
else:
echo a is smaller than b;
endif;
// while - do-while(0)
$i = 1;
while($i < 10):
echo $i++. ;
endwhile;
// for
for ($i = 10; $i <= 11; $i++):
echo $i. .
; endfor;
// foreach
$arr = array(1, 2, 3, 4, 5);
foreach($arr as $key => & $value):
$value += 2;
echo key1: $key => value: $value.
; endforeach;
// 陣列最後乙個元素的 $val 引用在 foreach 迴圈之後仍會保留。建議使用 unset() 來將其銷毀。
TCP的流量控制
為了提高通道的利用率tcp協議不使用停止等待協議,而是使用連續arq協議,意思就是可以連續發出若干個分組然後等待確認,而不是傳送乙個分組就停止並等待該分組的確認。tcp的兩端都有傳送 接收快取和傳送 接收視窗。tcp的快取是乙個迴圈佇列,其中傳送視窗可以用3個指標表示。而傳送視窗的大小受tcp資料報...
TCP的流量控制
為了提高通道的利用率tcp協議不使用停止等待協議,而是使用連續arq協議,意思就是可以連續發出若干個分組然後等待確認,而不是傳送乙個分組就停止並等待該分組的確認。tcp的兩端都有傳送 接收快取和傳送 接收視窗。tcp的快取是乙個迴圈佇列,其中傳送視窗可以用3個指標表示。而傳送視窗的大小受tcp資料報...
TCP的流量控制
為了提高通道的利用率tcp協議不使用停止等待協議,而是使用連續arq協議,意思就是可以連續發出若干個分組然後等待確認,而不是傳送乙個分組就停止並等待該分組的確認。tcp的兩端都有傳送 接收快取和傳送 接收視窗。tcp的快取是乙個迴圈佇列,其中傳送視窗可以用3個指標表示。而傳送視窗的大小受tcp資料報...