六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

PHP3中文文檔(續3)

[摘要]任何PHP腳本語言都是使用連續的語句創建的。一個語句可以是一個賦值語句,一個函數調用,一個循環,一個條件語句甚至一個不做任何事情的語句(一個空的語句)。語句經常使用分號(;)結尾。另外,利用卷支持可以把一組語句壓縮從而使語句可以被組成語句組。一個語句組是一個關于自身的申明。不同的語句類型將在本章被...
任何PHP腳本語言都是使用連續的語句創建的。一個語句可以是一個賦值語句,一個函數調用,一個循環,一個條件語句甚至一個不做任何事情的語句(一個空的語句)。語句經常使用分號(;)結尾。另外,利用卷支持可以把一組語句壓縮從而使語句可以被組成語句組。一個語句組是一個關于自身的申明。不同的語句類型將在本章被描述。

 

常量
PHP定義了一些常量提供給結構使它能夠在運行時定義更多的類型。常量和變量十分的類似,但是他們在語法上有些微的不同。

被預定義的常量是__FILE__ 和__LINE__,在處理他們時,會發現他們與文件名和行號相符合。請參考如下示例:

 

Example 6-1. Using __FILE__ and __LINE__ //使用__FILE__ 和__LINE__

<?php

function report_error($file, $line, $message) {

echo "An error occured in $file on line $line: $message.";

}

 

report_error(__FILE__,__LINE__, "Something went wrong!");

?>

 

您可以使用函數define() 和undefine()來定義其它的常量。

 

Example 6-2. Defining Constants //定義常量

<?php

define("CONSTANT", "Hello world.");

echo CONSTANT; // outputs "Hello world."

undefine ("CONSTANT");

?>

表達式

表達式是PHP最重要的基石。在PHP中,您所寫的幾乎所有的內容都是表達式。最簡單同時也是最精確的定義一個表達式的方法是“任何內容都有它的值”。

 

立刻進入大腦的簡單例子是:常量和變量。當您輸入“$a = 5”,您就把值“5”賦給了變量“$a”,明顯的,獲得這個數值5,或者說’5’是一個值為5的表達式(在這個例子中,’5’是一個整數常量)。

賦值以后$a的值是5, 因此如果你這樣寫$b = $a,你它同$b = 5所表達的意思是一樣的.換句話說,$a是一個值為5的表達式.如果一切工作正常,這些將是所發生的一切.

再稍微復雜一點的表達式的例子是函數(function) .例如,考慮以下下面的函數:

 

function foo () {

return 5;

}

 

假設你熟悉函數的概念(如果你不熟悉,看一下第四章),你可能假設$c=foo()從本質上說同$c=5是一致的,你是正確的.函數是以他們的返回值為值得表達式.既然foo()返回5,表達式’foo()’的值就是5。一般來說,函數不會僅僅返回一個態的值,他們一般都計算一些東西。

當然,PHP里面的值不必須是整數,并且經常他們不是PHP支持三種標量類型的數值:整數,浮點數,和字符串。(標量值是不能被再分為更小部分的數值,例如它不能是數組)。php也支持兩種合成類型的數值:數組和對象。每一種數據類型都能被賦值給變量或者通過函數返回。

迄今為止,PHP/FI 2的用戶不應該感覺到任何改變。然而,PHP把表達式帶入了一個更深的層次,如同許多其它語言所作的一樣。PHP是一種面向表達式的語言,幾乎每一件事都是一個表達式.考慮一下我們已經處理過的表達式“$a=5”.可以非常容易的看出這里包含了兩個值,常量’5’的值,和$a的值。$a的值也已經被更新成5。但是事實是這里還有一個額外的值包含其中,并且這個值就是賦值語句本身.這個賦值語句本身計算所賦值的數值,在這個例子中是5。實際上,它意味著“$a=5”,不管他做什么,是一個值為5的表達式。因此,一些像’$b=($a=5)’的表達式,實際上同’$a=5;$b=5’(分號代表表達式的結束)是一樣的.既然賦值語句被以從右到左的順序解析,你還可以這樣寫’$b=$a=5’。

另一個很好的表達式的例子是前和后遞增量的方向性.PHP/FI 2的用戶和許多其他語言的用戶也許對符號(variable(變量)++和variable--)非常熟悉.這些就是遞增和遞減符號.在PHP/FI 2中,語句’$a++’沒有任何值(不是一個表達式),并且因此你不能給它賦值或以任何方式來使用它.PHP通過發展這些表達式加強了遞增(increment)/遞減(decrement)的能力,像c語言中一樣.在PHP中,有兩種遞增形式-前遞增和后遞增.這兩種遞增本質上都是使變量加1,并且對變量的影響都是一樣的.他們的區別是遞增表達式本身的值.前遞增的形式是’++$variable(變量)’,計算遞增值(PHP 在讀出它的值之前遞增變量的值,因此叫前遞增)后遞增的形式是’$variable++’,在變量遞增前計算$variable的原始值(PHP先讀出變量的值,然后再遞增,因此叫后遞增).

表達式的最后一個例子我們將處理組合操作符賦值表達式.你已經知道了如果你想將變量$a的值加1,你可以簡單的寫成’$a++’或’++$a’.但是如果你想加的數值不只是1呢,例如3?你可以多次使用’$a++’,但是很明顯這樣不是一個有效的,簡潔的方式.通常的方法是這樣寫’$a=$a+3’. ’$a=$a+3’計算變量$a加3后的值,并且被重新賦值給了變量$a,最終的結果是變量$a的值加了3.在PHP中,如同像C一樣的其它一些語言,你可以用更簡短的方式來做這些.給變量$a的當前值加3可以寫’$a+=3’.這個表達式正確的意思是”讀出$a的值,加3,然后把它賦值給$a”.除了更加簡潔和簡略外,這樣的語句執行起來速度更快.表達式’$a+=3’的值,像一個正則賦值語句的值.是被賦予的值.注意它不是3,而是$a+3的組合的值(這是一個被賦給$a的值).任何二元操作符都可以被用來組合成復合賦值操作符.例如,’$a-=5’($a=$a-5),’$b*=7’($b乘以7),等等.

如果你沒有在其它語言中加過的話,你會認為下面的表達式看起來非常奇怪.這就是三元條件算子:

$first ? $second : $third

如果第一個子表達式的值為真的話(非0),那么他的第二個子表達式將被計算,并且這就是整個條件表達式的值.否則,第三個子表達式將被預算,結果作為整個條件表達式的值.

下面的例子可以幫助你大體上理解前,后遞增和表達式.

function double($i) { return $i*2;}

$b = $a = 5; /* 把5賦值$a和$b */

$c = $a++; /* 后遞增, 把$a的原始值(5)賦值給$c */

$e = $d = ++$b; /* 前遞增, 把經過遞增操作的$b的值(6)賦值給$e和$d */

/* 這時,$d和$e都等于(6) */

$f = double($d++); /* 把$d的原始值(6)加倍,然后賦值給$f.$f等于(12)*/

$g = double(++$e); /* 先把$e執行遞增操作,然后加倍, 2*7 = 14賦值給$g*/

$h = $g += 10; /* 首先,$g加10,并且最終結果是24.將這個值賦值給$h,并且$h最終的結果也是24.*/

在本章的一開始,我們就說過”我們將描述各種類型的語句”.表達式可以成為語句,然而,并不是每一個表達式都是一個語句.既然這樣,一個語句具有’expr’’;’的形式,一個表達式加上一個分號.在’$b=$a=5;’中,$a=5是一個有效的表達式,但是他不能由他自己構成一個語句.但是’$b=$a=5;’卻是一個有效的語句.

最后一個值得提起的事情是一個表達式的值的真假.在很多事件中,主要在條件執行和循環中,你對表達式的確切的值并不感興趣,你僅僅對他是否以為著 TRUE(真)或FALSE(假)(PHP沒有專門的boolean類型).在PHP中計算表達式的真假的方式同perl非常相似.任何非零的數值都是TRUE,零是FALSE!注意負數也非零,所以也為真!空字符串和字符’0’為FALSE;所有其他字符串為TRUE.對于非標量的數值(數組或對象)-如果值沒有包含任何元素,則被認為為FALSE,否則為TRUE.

PHP提供了一個完整而且強大的表達式工具,并且完全說明他已經超出了本手冊的范圍.關于表達式是什么,你怎么才能構造一個有效的表達市,上面的例子應該給了你一個很好的提示.貫穿這個手冊的其余部分,我們將用’expr’代表有效的PHP表達式.

 

IF
IF結構是任何語言中最重要的特性之一,PHP也包括了它。它允許進行條件判斷同時執行相應的程序段。PHP中IF語句的特性和C是十分類似的:

if (expr)

statement

在對該表達式片段的描述后,會判斷表達式的值是否為真。如果表達式的值為真,PHP會執行該語句,如果該值為假,那么PHP將會跳過該語句。

 

接下來的例子中如果$a比$b大,那么將顯示“a is bigger than b”。

if ($a > $b)

print "a is bigger than b";

 

通常的情況,是用戶希望使用不只一條語句被有條件的執行。當然,在這里沒有必要對每一個語句使用IF條件判斷。用戶可以使用一組語句來實現這個功能。例如,如果$a比$b大,那么下面的代碼將顯示“a is bigger than b”,同時將$a的值賦給$b。

if ($a > $b) {

print "a is bigger than b";

$b = $a;

}

 

IF語句可以嵌套在另一個IF語句之中,利用這一點,用戶可以根據不同的情況執行程序中不同的部分。

 

ELSE
通常,可能在條件符合時希望運行某個語句,而在條件不符合時希望運行另一段程序。這就是ELSE語句的作用。ELSE擴展了IF語句的作用,當條件為假時,ELSE后面的語句將被執行。例如,接下來的程序段將在$a大于$b的時候顯示“a is bigger than b”,在其他的情況下顯示“a is NOT bigger than b”。

if ($a > $b) {

print "a is bigger than b";

} else {

print "a is NOT bigger than b";

}

 

ELSE語句并不僅僅起到在IF表達式值為假的時候執行語句的作用,如果在它后面接上IF的話,就成為了ELSEIF語句,使用它可以進一步的分析假的情況(見下文)。

 

ELSEIF
 

正如它的名字所暗示的,ELSEIF是IF和ELSE的組合。和ELSE一樣它擴展了IF語句對FALSE(假)的處理。但是和ELSE不一樣的是,ELSEIF將已經為假的條件再進行一次判斷,并根據判斷的結果進行處理。例如,下列代碼在$a>$b的情況下將顯示“a is bigger than b”,當$a不大于$b的時候就再進行一次判斷,如果$a==$b,將顯示“a is equal to b”,如果$a<$b將顯示“a is smaller than b”。

if ($a > $b) {

print "a is bigger than b";

} elseif ($a == $b) {

print "a is equal to b";

} else {

print "a is smaller than b";

}

 

在同一個IF語句中可以有多個ELSEIF語句。第一個ELSEIF表達式(if any)如果為真,那么將被執行。在PHP3中,您也可以寫成“else if”(使用兩個詞)同時效果和使用“elseif”(一個詞)是一樣的。他們的語言僅僅有些微的不一樣(如果您熟悉C語言的話,您會發現這個不一樣和在C中類似)但是最終他們的結果是完全一樣的。

 

ELSEIF語句僅僅在IF語句或前一個ELSEIF的表達式為假,同時當前的ELSEIF語句表達式為真的情況下執行。

 

IF語句的交互語法:IF().. ..ENDIF
PHP3提供了一種不同的方法在IF語句中建立語句組。這種方式在您將HTML嵌套進IF語句中非常常見,但是您可以將著種方法應用到任何位置。除了使用{}之外,IF表達式可以跟隨一個冒號,一個或多個語句,然后使用ENDIF結尾;請注意如下的例子:

 

<?php if ($a==5): ?>

A = 5

<?php endif; ?>

 

在上面所示的例子中,利用交互語法,HTML語句“A = 5”被嵌套進了IF語句之中。這個HTML語句會在$a為5的時候被顯示。

這種交互語法也可以應用在ELSE和ELSEIF語句之中。接下來的例子是使用交互格式的IF、ELSEIF和ELSE語句。

if ($a == 5):

print "a equals 5";

print "...";

elseif ($a == 6):

print "a equals 6";

print "!!!";

else:

print "a is neither 5 nor 6";

endif;

 

WHILE
WHILE循環是PHP3中循環的一個簡單例子。它和在C中的表現完全一樣,WHILE語句基本的結構如下所示:

WHILE(expr) statement

 

WHILE語句的的含義是十分簡單的。它告訴PHP在WHILE表達式為真的情況下反復的執行嵌套的語句。表達式的值在每一次循環開始的時候被檢查,所以即使這個值在執行嵌套的語句時被更改了,執行過程將不會被終止,直到結束該次循環為止。有些情況下,WHILE表達式的值在開始就是假,那么這些嵌套的語句將一次也不會被執行。

和使用IF語句類似,您可以在同一個WHILE循環中使用多個語句作為一個組,使用{ }或類似于下文的語法:

WHILE(expr): statement ... ENDWHILE;

在下面的兩個例子實現的功能是相同的,即打印了從1到10的所有數字:

 

/* example 1 */

$i = 1;while ($i <= 10) {

print $i++; /* the printed value would be

$i before the increment

(post-increment) */

}

 

/*example 2 */

$i = 1;

while ($i <= 10):

print $i;

$i++;

endwhile;

 

DO..WHILE
DO..WHILE循環和WHILE循環是十分類似的,除了真值檢查是在每個循環過程最后進行的外。這里最主要的不同就是對于DO..WHILE循環,它和標準的WHILE循環不一樣,它的第一個循環過程總是會被執行的(由于真值檢查是在最后被執行的)。標準的WHILE循環中的第一個語句不一定被執行(由于真值檢查是在循環開始時進行的)。

 

這兒是使用DO..WHILE循環語句的一個例子:

$i = 0;

do {

print $i;

} while ($i>0);

 

上文的循環僅僅會被執行一次,在第一次循環執行完畢之后,檢查表達式為假($I并不比0大)此時循環就會被終止。

 

高級的C語言使用者對使用DO..WHILE循環的不同之處會有很深的理解,為了允許在代碼段的執行過程中終止執行,可以使用將他們加入DO..WHILE(0)語句中,再使用BREAK語句的方法。下面代碼段說明了這一點:

do {

if ($i < 5) {

print "i is not big enough";

break;

}

$i *= $factor;

if ($i < $minimum_limit) {

break;

}

print "i is ok";

...process i...

} while(0);

 

如果您對這些都不是很明白的話,也不必擔心。您可以在不使用這些特性的情況下編寫出很強有力的代碼。

 

FOR
在PHP中FOR循環是最復雜的循環。它的特性和它在C語言中的表現類似。FOR循環的語法如下:

 

FOR (expr1; expr2; expr3) statement

 

第一個表達式expr1將在循環開始時無條件的被求解執行;

在每一個循環開始的時候,第二個表達式將被執行。如果它的值為真,則該循環將繼續下面嵌套語句的執行。如果它的值為假,則循環結束;

在每個循環的最后第三個表達式將被執行。

任何一個表達式都可以是空的,當表達式二(expr2)是空的時候,意味這這個循環運行的次數將是不確定的(PHP和C一樣默認該表達式為真)。這種做法并不象您想象的那樣沒有用,因為在有些情況下您可能希望使用帶條件的BREAK語句來取代FOR的真值判斷來作為終止循環的方法。

 

注意下面的幾個例子,所有的這些語句顯示了從1到10的數字:

 

/* example 1 */

for ($i = 1; $i <= 10; $i++) {

print $i;

}

 

/* example 2 */

for ($i = 1;;$i++) {

if ($i > 10) {

break;

}

print $i;

}

 

/* example 3 */

$i = 1;for (;;) {

if ($i > 10)

{ break;

}

print $i;

$i++;

}

 

/* example 4 */

for ($i = 1; $i <= 10; print $i, $i++) ;

 

當然,看上去第一個例子最好(或者是第四個例子),但是您將發現在許多場合使用空表達式的FOR循環是十分方便的。

 

在FOR循環中PHP也支持交互的“冒號語法”。例如:

FOR (expr1; expr2; expr3): statement; ...; endfor;

 

其他有FOR語句的語言往往使用該語句來處理數組。在PHP中使用WHILE語句和list()和each()函數來做這件事情。請參考這些函數相關的例子。

 

BREAK
BREAD 跳出當前的循環體,提前結束循環.

$i = 0;

while ($i < 10) {

if ($arr[$i] == "stop") {

break;

}

$i++;

}

 

CONTINUE
CONTINUE結束本次循環,跳到循環體的開始處,接著進行下一次循環的判定.

while (list($key,$value) = each($arr)) {

if ($key % 2) { // skip even members

continue;

}

do_something_odd ($value);

}

 

SWITCH
在實際問題中常常需要用到多分支的選擇.你可以使用多重嵌套的IF語句來處理,但如果分支較多,則嵌套的IF語句層數多,程序冗長而且可讀性降低.PHP中提供SWITCH語句來直接處理多分支選擇.

下面的兩個例子使通過兩種不同的方式來實現同一件事,一個使用了一系列的IF語句,另外一個使用了SWITCH語句:

 

/* example 1 */

 

if ($i == 0) {

print "i equals 0";

}

if ($i == 1) {

print "i equals 1";

}

if ($i == 2) {

print "i equals 2";

}

 

/* example 2 */

 

switch ($i) {

case 0:

print "i equals 0";

break;

case 1:

print "i equals 1";

break;

case 2:

print "i equals 2";

break;

}

 



主站蜘蛛池模板: 午夜一区二区三区 | 香蕉久久夜色精品国产小说 | 天天碰夜夜操 | 一二三四在线观看免费高清网 | 香蕉久人久人青草青草 | 亚洲国产福利 | 性刺激欧美三级在线观看 | 欧美一二三 | 日韩精品一区二区三区乱码 | 伊人手机在线观看 | 人人草97 | 亚洲综合图区 | 在线视频综合网 | 人妖欧美一区二区三区四区 | 午夜影院普通 | 日韩精品一区二区三区中文3d | 日本综合在线 | 亚洲精品青青草原avav久久qv | 日本成人福利 | 日韩h| 日产国语一区二区三区在线看 | 亚洲六月丁香六月婷婷蜜芽 | 色妞在线影院色 | 桃花岛在线播放免费观看 | 日韩在线1 | 一级毛片视频免费 | 午夜手机福利 | 亚洲自拍中文 | 青青青国产色视频在线观看 | 在线视频亚洲 | 日韩乱轮 | 偷自拍视频区综合视频区 | 日韩色视频在线观看 | 综合 欧美 亚洲日本 | 四虎影视国产精品亚洲精品hd | 新版天堂中文资源8在线 | 日韩欧美视频在线播放 | 五月天色丁香 | 欧美视频在线不卡 | 日日射天天射 | 日韩一级一片 |