首頁 php教程 php手册 PHP3中文文档(续3)

PHP3中文文档(续3)

Jun 21, 2016 am 09:10 AM
nbsp php print quot while

中文

任何PHP脚本语言都是使用连续的语句创建的。一个语句可以是一个赋值语句,一个函数调用,一个循环,一个条件语句甚至一个不做任何事情的语句(一个空的语句)。语句经常使用分号(;)结尾。另外,利用卷支持可以把一组语句压缩从而使语句可以被组成语句组。一个语句组是一个关于自身的申明。不同的语句类型将在本章被描述。

 

常量
    PHP定义了一些常量提供给结构使它能够在运行时定义更多的类型。常量和变量十分的类似,但是他们在语法上有些微的不同。

    被预定义的常量是__FILE__ 和__LINE__,在处理他们时,会发现他们与文件名和行号相符合。请参考如下示例:

 

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


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 //定义常量


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
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结尾;请注意如下的例子:

 



A = 5



 

    在上面所示的例子中,利用交互语法,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
print $i++; /* the printed value would be

$i before the increment

(post-increment) */

}

 

/*example 2 */

$i = 1;

while ($i
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
print "i is not big enough";

break;

}

$i *= $factor;

if ($i
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
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
 

    当然,看上去第一个例子最好(或者是第四个例子),但是您将发现在许多场合使用空表达式的FOR循环是十分方便的。

 

    在FOR循环中PHP也支持交互的“冒号语法”。例如:

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

 

    其他有FOR语句的语言往往使用该语句来处理数组。在PHP中使用WHILE语句和list()和each()函数来做这件事情。请参考这些函数相关的例子。

 

BREAK
    BREAD 跳出当前的循环体,提前结束循环.

$i = 0;

while ($i
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;

}

 



本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1273
29
C# 教程
1252
24
PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP:網絡開發的關鍵語言 PHP:網絡開發的關鍵語言 Apr 13, 2025 am 12:08 AM

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP行動:現實世界中的示例和應用程序 PHP行動:現實世界中的示例和應用程序 Apr 14, 2025 am 12:19 AM

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP與Python:了解差異 PHP與Python:了解差異 Apr 11, 2025 am 12:15 AM

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP的持久相關性:它還活著嗎? PHP的持久相關性:它還活著嗎? Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP和Python:代碼示例和比較 PHP和Python:代碼示例和比較 Apr 15, 2025 am 12:07 AM

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP與其他語言:比較 PHP與其他語言:比較 Apr 13, 2025 am 12:19 AM

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

See all articles