时间: 2021-07-31 作者:daque
-------------------------------------------------------------------------------- if..else 回圈 -------------------------------------------------------------------------------- if..else 回圈有三种结构第一种是只有效到 if 前提,看成简单的确定。证明成 "若爆发了某事则还好吗处置"。语法如次:if (expr) { statement}个中的 expr 为确定的前提,常常都是用论理演算标记 (logical operators) 当确定的前提。而 statement 为适合前提的实行区段程式,若程式惟有一条龙,不妨简略大括号 {}。典型:本例简略大括号。if (date("d") == "sat") echo "周结尾,狂欢去";?>典型:本例的实行区段有三行,不行简略大括号。if (file_exists("/usr/local/lib/php3.ini")) { echo "以次是 php3 的设定档
\n"; readfile("/usr/local/lib/php3.ini"); echo "\n";}?> --------------------------------------------------------------------------------第二种是除去 if 除外,加上了 else 的前提,可证明成 "若爆发了某事则还好吗处置,要不该怎样处置"。语法如次if (expr) { statement1} else { statement2}典型:上头的例子来窜改成更完备的处置。个中的 else 因为惟有一条龙实行的训令,所以不必加上海大学括号。$f="/usr/local/lib/php3.ini";if (file_exists($f)) { echo "以次是 php3 的设定档
\n"; readfile($f); echo "\n";} else echo "很对不起,找不到 $f";?> --------------------------------------------------------------------------------第三种即是巢状的 if..else 回圈,常常用在多种计划确定时。它将数个 if..else 拿来兼并运用途理。径直看底下的例子if ($a > $b) { echo "a 比 b 大";} elseif ($a == $b) { echo "a 即是 b";} else { echo "a 比 b 小";}?>上例只用二层的 if..else 回圈,用来比拟 a 和 b 二个变数。本质要运用这种巢状 if..else 回圈时,请提防运用,由于太多层的回圈简单使安排的论理出题目,大概少打了大括号等,城市形成程式展示莫明其妙的题目。 -------------------------------------------------------------------------------- do..while 回圈 -------------------------------------------------------------------------------- do..while 是反复报告的回圈,不妨分红二种形式。最简单的即是惟有 while 的回圈。用来在指定的前提内,连接地重覆指定的举措。语法如次while (expr) { statement}个中的 expr 为确定的前提,常常都是用论理演算标记 (logical operators) 当确定的前提。而 statement 为适合前提的实行区段程式,若程式惟有一条龙,不妨简略大括号 {}。下例很风趣,重要电报脑的欣赏器展示十次 "此后不敢了" 的字串,前方并加上数字,表白说了第几次不敢了。(发觉犹如是 web server 做错事被处置)$i = 1;while ($i print $i++; echo ". 此后不敢了\n";}?>while 不妨不必大括号来包住实行区段,而运用冒号加上 endwhile。见下例$i = 1;while ($i print $i++; echo ". 此后不敢了\n";endwhile;?>其余一种 do..while 回圈则先实行,再确定能否要连接实行,也即是说回圈起码实行一次,有点像是先斩后奏的本领。这种的回圈,和单用 while 是各别的 (单用 while 是先确定再处置)。若读者群熟 pascal 谈话的话,会创造 do..while 回圈像是 pascal 的 repeat..until 回圈。do..whilte 的语法如次do { statement} while (expr);-------------------------------------------------------------------------------- for 回圈 -------------------------------------------------------------------------------- for 回圈就简单惟有一种,没有变革,它的语法如次for (expr1; expr2; expr3) { statement}个中的 expr1 为前提的初始值。expr2 为确定的前提,常常都是用论理演算标记 (logical operators) 当确定的前提。expr3 为实行 statement 后要实行的部份,用来变换前提,供下次的回圈确定,如加一..之类。而 statement 为适合前提的实行区段程式,若程式惟有一条龙,不妨简略大括号 {}。下例是用 for 回圈写的 "此后不敢了" 的例子,不妨拿来和用 while 回圈的比拟。for ($i=1; $i echo "$i. 此后不敢了\n";}?>从上例中,不妨很鲜明的看到,用 for 和用 while 的各别。本质运用上,若回圈有初始值,且都要累加(或累减),则运用 for 回圈比用 while 回圈好。比方将材料从材料库掏出,大概用 for 回圈会比用 while 回圈符合? switch 回圈 -------------------------------------------------------------------------------- switch 回圈,常常处置复合式的前提确定,每个子前提,都是 case 训令区段。在实作上若运用很多一致的 if 训令,不妨将它归纳成 switch 回圈。语法如次switch (expr) { case expr1: statement1; break; case expr2: statement2; break; : : default: statementn; break;}个中的 expr 前提,常常为变数称呼。而 case 后的 exprn,常常表白变数值。冒号后则为适合该前提要实行的区段。提防要用 break 跳离回圈。switch (date("d")) { case "mon": echo "即日礼拜一,山公穿新衣"; break; case "tue": echo "即日礼拜二,山公肚子饿"; break; case "wed": echo "即日礼拜三,山公去登山"; break; case "thu": echo "即日礼拜四,山公看电视"; break; case "fri": echo "即日礼拜五,山公去舞蹈"; break; default: echo "即日休假,尽管山公了"; break;}?>很鲜明的,上述的例子用 if 回圈就很烦恼了。固然在安排时,要将展示机率最大的前提放在最前方,最少展示的前提放在结果面,不妨减少程式的实行功效。上例因为每天展示的机率沟通,以是不必提防前提的程序。 -------------------------------------------------------------------------------- 其它的过程遏制 -------------------------------------------------------------------------------- 除去上头的过程遏制训令除外,尚有 break 及 continue 二个过程遏制训令。break 用来跳出暂时实行的回圈,如次例$i = 0;while ($i if ($arr[$i] == "stop") { break; } $i++;}?>--------------------------------------------------------------------------------continue 登时遏止暂时实行回圈,并回到回圈的前提确定处,见下例while (list($key,$value) = each($arr)) { if ($key % 2) { // 略过双数 continue; } do_something_odd ($value);}?>而 basic 常用的 goto 在 c 及 borland pascal 中大概不妨运用。但在 php 中,因为它的 web server script 个性以及构造化的构成,并不许在 php 中运用 goto 回圈训令?