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

Slides:



Advertisements
Similar presentations
CSIM, PU C Language Introduction to the C Programming Language 重覆敘述 (for,while,break,continue) 適合重複性的計算或判斷.
Advertisements

第 4 章 PHP 基本語法.
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
C#程序设计案例教程 第3章 程 序 结 构.
第一章 C语言概述 计算机公共教学部.
P303 HTML/DHTML/CSS/JavaScript 專業HTML網頁設計 陳錦輝.
第4章 JavaScript脚本语言基础 4.1 JavaScript简介 4.2 JavaScript语法基础
14 JavaScript语言基础 JavaScript是一种轻量级、解释型的Web开发语言。所谓轻量级,就是语言的体系结构不是很庞杂,例如,没有C、Java等语言中的类、内存管理、系统管理等高深的知识范畴;所谓解释型,就是语言在浏览器或服务器等环境中直接被解释执行,不需要对源代码进行编译操作。
第 5 章 流程控制 (一): 條件分支.
選擇 運算式 邏輯運算 if指令 流程圖基本觀念 程式註解 巢狀if指令 switch指令.
第三章 控制结构.
Ch07 PHP程式基礎 網頁程式設計.
Chapter 5 迴圈.
Class 2 流程控制-選擇敘述與迴圈.
第二章 C# 基础知识.
第5章 程序结构.
C++Primer 3rd edition 中文版 Chap 5
Shell Script 程式設計.
第一次随堂作业(10.16) 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
C++中switch语句的BNF 否极泰来 ——《周易》.
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
C 語言簡介 - 2.
第三單元 Control Structure II
條件判斷指令 -if 指令 -switch 指令 迴圈指令 - for 迴圈 - while迴圈 - break、continue 指令
PHP 程式流程控制結構.
Methods 靜宜大學資工系 蔡奇偉副教授 ©2011.
Introduction to the C Programming Language
實作輔導 3 日期: 4/14(星期六) 09:10~12:00、13:10~16:00
Android App簡介及 App Inventor 2體驗 靜宜大學資管系 楊子青
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
義守大學電機工程學系 陳慶瀚 第4章 VHDL Sequential語法 義守大學電機工程學系 陳慶瀚
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
软件测试 (四)静态测试与动态测试.
Case 工具-UML with Rational Rose
第二章Java基本程序设计.
條件判斷指令 -if 指令 -switch 指令 迴圈指令 - for 迴圈 - while迴圈 - break、continue 指令
程式結構&語法.
第六章 迴圈與陣列.
第三章 C++的语句和简单的程序设计 主要内容:
行政管理者 的素质要求 中南大学湘雅医院 李远斌
CH05. 選擇敘述.
Match the fruit with the correct words.
第二章 Java基本语法 讲师:复凡.
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
第3章 JavaScript基本语句.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
Repeating Blocks: Iteration 靜宜大學資管系 楊子青
第二章 Java语法基础.
本节内容 Lua基本语法.
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
PHP程式設計 五、程式流程控制結構 建國科技大學 資訊管理學系 饒瑞佶.
進階 WWW 程式設計 -- PHP Array 靜宜大學資訊管理學系 蔡奇偉副教授
反覆迴圈、陣列、副程式 靜宜大學資管系 楊子青
反覆迴圈、陣列、副程式 靜宜大學資管系 楊子青
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
Do While 迴圈 東海大學物理系‧資訊教育 施奇廷.
第2章 Java语言基础.
第6章 PHP基本語法介紹.
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 12 章 迴圈指令.
C#快速導讀 流程控制.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
C语言基本语句 判断循环.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第二章 Java基本语法 讲师:复凡.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

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

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

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

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";

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"; }

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

範例 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"; }

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

不使用 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"; }

使用 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"; }

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

範例 $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>"; }

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

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

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

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

範例 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

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

範例 /* 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"; } 範例

/. 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”))

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

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

範例 $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;    } }

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

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

範例 $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"; }

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

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 ?>

範例 include() through HTTP <?php /* This example assumes that www.example.com 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 www.example.com as PHP include 'http://www.example.com/file.txt?foo=1&bar=2'; // 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 'http://www.example.com/file.php?foo=1&bar=2'; $foo = 1; $bar = 2; include 'file.txt';  // Works. include 'file.php';  // Works. ?>

範例 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; } ?>

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 ?>

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

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