Presentation is loading. Please wait.

Presentation is loading. Please wait.

進階 WWW 程式設計 -- PHP 語言結構 靜宜大學資訊管理學系 蔡奇偉副教授 2003

Similar presentations


Presentation on theme: "進階 WWW 程式設計 -- PHP 語言結構 靜宜大學資訊管理學系 蔡奇偉副教授 2003"— Presentation transcript:

1 進階 WWW 程式設計 -- PHP 語言結構 靜宜大學資訊管理學系 蔡奇偉副教授 2003
2019/4/12 進階 WWW 程式設計 PHP 語言結構(二) 靜宜大學資訊管理學系 蔡奇偉副教授 2003 靜宜大學資管系 蔡奇偉編撰 版權所有 2003

2 敘述 條件敘述 迴圈敘述 return 敘述 include 敘述 require 敘述

3 條件敘述 if 敘述 if…else 敘述 elseif 敘述 switch 敘述

4 if 敘述 範例 if (condition) statement condition { statements } statements
true false if (condition) statement { statements } 範例 if ($a > $b) {    echo "a is bigger than b";    $b = $a; } if ($a > $b)    echo "a is bigger than b";

5 if…else 敘述 範例 if (condition) { condition true_statements } else {
false statements if (condition) { true_statements } else { false_statements 範例 if ($a > $b) {    echo "a is bigger than b"; } else {    echo "a is NOT bigger than b"; }

6 elseif 敘述 if (condition1) { true_statements_for_condition1 condition1
false S1 condition2 S2 conditionk Sk Sk+1 if (condition1) { true_statements_for_condition1 } elseif (condition2) { true_statements_for_condition2 elseif (conditionk) { true_statements_for_conditionk else { all_false_statements

7 範例 if ($a > $b) {    echo "a is bigger than b"; } elseif ($a == $b) {    echo "a is equal to b"; } else {    echo "a is smaller than b"; }

8 switch 敘述 switch (expression) { case label_1: label 必須是一個常式
statement(s); break; case label_2: default : statement(s); } label 必須是一個常式

9 不使用 break 敘述時: switch ($i) {    case 0:        echo "i equals 0";    case 1:        echo "i equals 1";    case 2:        echo "i equals 2"; } if ($i == 0) {    echo "i equals 0"; } if ($i == 1) {    echo "i equals 1"; } if ($i == 2) {    echo "i equals 2"; }

10 使用 break 敘述時: switch ($i) { case 0: echo "i equals 0";
break;    case 1:        echo "i equals 1"; break;    case 2:        echo "i equals 2"; break; } if ($i == 0) {    echo "i equals 0"; } esleif ($i == 1) {    echo "i equals 1"; } elseif ($i == 2) {    echo "i equals 2"; }

11 範例 switch ($i) {    case 0:    case 1:    case 2:        echo "i is less than 3 but not negative";        break;    case 3:        echo "i is 3"; }

12 範例 $string_match="second"; switch ($string_match) { case "first": case "second": case "third":    echo "<H3>Something for all three</H3>";    switch ($string_match) {      case "first":       echo "something for first only";       break;      case "second":      case "third":       echo "something for the other two";       break;    } break; default: echo "<H3>no match</H3>"; }

13 迴圈敘述 while 敘述 do..while 敘述 for 敘述 foreach 敘述 break 敘述 continue 敘述

14 while 敘述 範例 while (condition) { condition statement(s) } Statement(s)
false true while (condition) { statement(s) } 範例 $i = 1; while ($i < 0) {    echo $i++; } $i = 1; while ($i <= 10) {    echo $i++; } 輸出:無 輸出:1 2 … 10

15 do…while 敘述 範例 do { statement(s) statement(s) } while (condition)
false true do { statement(s) } while (condition) 範例 $i = 0; do {   echo $i; } while ($i > 0); $i = 0; do {   echo $++i; } while ($i <= 10); 輸出:0 輸出:1 2 … 10 11

16 for 敘述 statement for ([initialExpr]; [condition]; [incrementExpr] ) {
} initialExpr incrementExpr statement condition false true

17 範例 for ($i = 1; $i <= 10; $i++) { echo $i; } 1
$i = 1; for (;;) {    if ($i > 10) {        break;    }    echo $i;    $i++; } for ($i = 1 ;; $i++) {    if ($i > 10) {        break;    }    echo $i; } 2 3 for ($i = 1; $i <= 10; echo $i++) ; 4 上面四個例子都輸出:1 2 … 10

18 foreach 敘述 foreach 敘述是專用來處理陣列的迴圈敘述,其格式如下: foreach(array_expression as $value) statement foreach(array_expression as $key => $value) statement 第一式用於索引陣列。每次進入迴圈時,取出陣列中的下一個元素存入變數 $value 中。 第二式用於對照陣列。每次進入迴圈時,取出陣列中的鍵值和對照值分別存入變數 $key 和 $value 中。

19 範例 /* foreach example : value only */
$a = array (1, 2, 3, 17); foreach ($a as $v) {   echo "Current value of \$a: $v.\n"; } /* foreach example : key and value */ $a = array (    "one" => 1,    "two" => 2,    "three" => 3,    "seventeen" => 17 ); foreach($a as $k => $v) {     echo "\$a[$k] => $v.\n"; } 範例

20 /. foreach example : dynamic arrays
/* foreach example : dynamic arrays */ foreach(array(1, 2, 3, 4, 5) as $v) {    echo "$v\n"; } /* foreach example : multi-dimensional arrays */ $a[0][0] = "a"; $a[0][1] = "b"; $a[1][0] = "y"; $a[1][1] = "z"; foreach($a as $v1) {    foreach ($v1 as $v2) {        echo "$v2\n";    } } 範例 a = ((“a”, “b”), (“y”, “z”))

21 break 敘述 break; break n;
在迴圈中的 break 敘述是用來中斷迴圈的執行,然後跳出迴圈。在 switch 敘述中的 break 則是用來中斷 case 敘述的執行。 若未指定數字 n,則表示跳出目前的迴圈,否則,跳出 n 層的迴圈(或 switch)結構。

22 while (…) { if (…) break; if (…) break 2; } // simple break goes here // break 2 goes here

23 範例 $i = 0; while (++$i) {    switch ($i) {    case 5:        echo "At 5<br>\n";        break 1;  /* Exit only the switch. */    case 10:        echo "At 10; quitting<br>\n";        break 2;  /* Exit the switch and the while. */    default:        break;    } }

24 continue 敘述 continue; continue n;
若未指定數字 n,則表示跳出目前的迴圈,否則,跳出 n 層的迴圈結構。

25 while (…) { if (…) continue; if (…) continue 2; }

26 範例 $i = 0; while ($i++ < 5) {    echo "Outer<br>\n";    while (1) {        echo "  Middle<br>\n";        while (1) {            echo "  Inner<br>\n";            continue 3;        }        echo "This never gets output.<br>\n";    }    echo "Neither does this.<br>\n"; }

27 return 敘述 範例 return; return expression;
<?php function foo() {   return "Cher"; } $name = foo(); echo $name; // ouput: Cher ?>

28 include 敘述 範例 include 敘述用來加入一個外部檔案。若加進來的檔案不存在的話,會產生警告的訊息。 vars.php
test.php <?php $color = 'green'; $fruit = 'apple'; ?> <?php echo "A $color $fruit"; // A include 'vars.php'; echo "A $color $fruit"; // A green apple ?>

29 範例 include() through HTTP
<?php /* This example assumes that is configured to parse .php * * files and not .txt files. Also, 'Works' here means that the variables * * $foo and $bar are available within the included file.                 */ // Won't work; file.txt wasn't handled by as PHP include ' // Won't work; looks for a file named 'file.php?foo=1&bar=2' on the // local filesystem. include 'file.php?foo=1&bar=2'; // Works. include ' $foo = 1; $bar = 2; include 'file.txt';  // Works. include 'file.php';  // Works. ?>

30 範例 include() and conditional blocks
<?php // This is WRONG and will not work as desired. if ($condition)    include $file; else    include $other; // This is CORRECT. if ($condition) {    include $file; } else {    include $other; } ?>

31 include_once 敘述 include_once 敘述基本上和前述的 include 敘述相同,惟一的的差別在於:若用 include_once 敘述,同一個檔案只會加進來一次。 範例 vars.php test.php <?php $color = 'green'; $fruit = 'apple'; ?> <?php echo "A $color $fruit"; // A include_once 'vars.php'; echo "A $color $fruit"; // A green apple $color = ‘red'; $fruit = ‘banana'; include_once 'vars.php'; echo "A $color $fruit"; // A red banana ?>

32 雖然在 include_once 敘述中,檔案名稱是大小寫有所區別的,但是有些作業系統(如 Windows)的檔案名稱卻沒有大小寫之分。這使得下面的例子:
include_once("a.php"); include_once ("A.php"); 在 Windows 系統中會加進來檔案 a.php(或稱 A.php )兩次,這樣一來就和使用 include_once 的原意不合了。因此,敘述中的檔案名稱最好和外部的檔案名稱大小寫能夠一致,以避免上述的問題。

33 require 敘述和 require_once 敘述
requre 敘述和 include 敘述功能相同。它們惟一的不同處在於:欲加進來的檔案若不存在的話, include 敘述只會輸出警告的訊息,然後繼續執行程式,requre 敘述則視其為嚴重的錯誤而終止程式的執行。 requre_only 敘述和 include_only 敘述功能相同。它們惟一的不同處在於:欲加進來的檔案若不存在的話, include 敘述只會輸出警告的訊息,然後繼續執行程式,requre 敘述則視其為嚴重的錯誤而終止程式的執行。 因此,絕大多的時候,我們都使用 require 或 require_once。只用 include 或 include_once 來加入無關的緊要的檔案。


Download ppt "進階 WWW 程式設計 -- PHP 語言結構 靜宜大學資訊管理學系 蔡奇偉副教授 2003"

Similar presentations


Ads by Google