PHP程式設計 三、PHP基本語法 建國科技大學 資訊管理學系 饒瑞佶.

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

德 国 鼓 励 生 育 的 宣 传 画.
第 4 章 PHP 基本語法.
“08高考化学学业水平(必修科目)测试的命题和教学对策研究”
PHP的由來 在古早古早的時候,也就是1994年。當時有個叫Rasmus Lerdorf的人,
Ch07 PHP程式基礎 網頁程式設計.
PHP程式設計 二、HTML & PHP基本語法 建國科技大學 資訊管理學系 饒瑞佶.
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 7 章 資料型態.
C#.
Visual Basic 6.0 學習範本 第三章 基本資料型態.
LINQ 建國科技大學 資管系 饒瑞佶.
PHP 5 入門基礎 第一個PHP 程式 PHP 資料型態.
C Shell Programming.
JDK 安裝教學 (for Win7) Soochow University
第3章 變數、資料型別與運算子.
2 C++ 程式概論 2.1 C++ 程式結構 程式註解 // 插入標題檔 #include 2-3
保留字與識別字.
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
Java程式概觀.
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 18 章 Cookie和 Session.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
檔案與磁碟的基本介紹.
第二章 SPSS的使用 2.1 啟動SPSS系統 2.2 結束SPSS系統 2.3 資料分析之相關檔案 2.4 如何使用SPSS軟體.
Java 程式設計 講師:FrankLin.
網頁切換移轉 JS vs. ASP.NET.
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
PHP 變數、常數與運算子 變數 常數 運算子
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 8 章 變數.
第一單元 建立java 程式.
VS.NET 2003 IDE.
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
進階 WWW 程式設計 -- PHP 語言結構 靜宜大學資訊管理學系 蔡奇偉副教授 2003
第三章 資料型態與輸出控制 本章學習目標 認識Matlab的基本資料型態 練習資料型態的轉換 學習如何控制Matlab的輸出格式
PHP概述
第5章 變數、常數與資料型態 [我的主控台程式]
雲端計算.
JAVA 程式設計 資訊管理系 - 網路組.
輸入&輸出 函數 P20~P21.
表格(HTML – FORM).
IIS Internet Information Services
撰寫MATLAB基礎財務程式 柯婷瑱.
挑戰C++程式語言 ──第8章 進一步談字元與字串
VS.NET 2003 IDE.
認識常數與變數 學習C++所提供的各種基本資料型態 瞭解溢位的發生 學習認識資料型態之間的轉換
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
HelloPurr_Extend 靜宜大學資管系 楊子青
MicroSim pspice.
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
挑戰C++程式語言 ──第7章 輸入與輸出.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
函數應用(二)與自定函數.
陣列與結構.
JQuery 標籤操作 建國科技大學 資管系 饒瑞佶 2013/4 V1.
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
簡單Java介紹.
網頁設計實務- PHP 與資料庫整合.
1757: Secret Chamber at Mount Rushmore
資料表示方法 資料儲存單位.
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
第6章 PHP基本語法介紹.
Programming & Language Telling the computer what to do
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Array(陣列) Anny
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
Develop and Build Drives by Visual C++ IDE
Introduction to the C Programming Language
方法(Method) 函數.
InputStreamReader Console Scanner
Presentation transcript:

PHP程式設計 三、PHP基本語法 建國科技大學 資訊管理學系 饒瑞佶

PHP 基本語法介紹

PHP基本語法 內嵌在HTML標籤中,使用 <?php php程式 ?> 或 <% php程式 %> 或(ASP亦使用此表示,要設定php.ini ) <script language=“php”>php程式</script> 標示 需要經由Apache Server轉譯後才可以動作 副檔名為 .php或 .php3 每個命令結尾需要加上; phpinfo() 裡面蘊藏無數資料,請善加利用

PHP基本語法 <html> <title>PHP標籤</title> <body> PHP的四種寫法<p> <?php echo "利用< ?php ? >的PHP寫法" ; ?> <hr><p> <script language="php"> echo "利用Script的寫法" ; </script> <? echo "利用< ? ? >的PHP寫法" ; echo "這種寫法必須將php.ini中的short_open_tags設定為On才可以使用" ; <% echo "利用< % % >的PHP寫法<BR>" ; echo "這種寫法必須將php.ini中的asp_tags設定為On才可以使用" ; %> </body> </html>

PHP基本語法 程式註解,使用 // 或 # 表示單行註解 (c++ 註解的風格 ) /* 中間文字是註解 */ 表示多行註解 /* 中間文字是註解 */ 表示多行註解 註解內不可以再出現註解符號 ///////* ? /* xxxx// */ ? PHP不像HTML可以直接使用瀏覽器執行

PHP基本語法-基本輸出 輸出指令 echo() 與 print() (phptest1.php,p2-2) PHP與HTML 單引號與雙引號對變數處理的方式不同 使用echo會比print略有效率。 簡略寫法<?= ?> PHP與HTML 嵌入HTML標籤中 在HTML標籤外 獨立存在

PHP 資料型態

PHP資料型態 在PHP中,變數之前必需加$的符號 PHP的大小寫是有差別的,所以在使用變數時,須注意大小寫是否一致 變數使用前不需要事先宣告(「鬆散」的變數型態 ) 使用變數時被指定的值的型態就是變數的型態 PHP共有 8 種資料型態

PHP資料型態 名稱 型態 範例 Boolean 布林型態 $a=True; Integer 整數型態 $a=10; Float 浮點數型態 String 字串型態 $a=“Hello !!”; Array 陣列型態 $a[0]=20; Object 物件型態 $a=new Objectclass; Resource 外部資源 $a=mysql_connect(); Null Null型態 $a=NULL;

Boolean布林型態 只有真(True)與假(False)兩種值 可以直接設定 $a=True; $b=False; 其他型態轉換成布林型態

Integer整數型態 10進制,8進制(0)與16進制(0x)三種 表示方法 [+|-] [0|0x] 數值 $a=123;(10進制) $b=-456;(10進制) $c=0123;(8進制相當於10進制的83) $d=0x45;(16進制相當於10進制的69)

Integer整數型態 <html> <title>整數</title> <body> <? $A=12 ; $B=-34 ; $C=012; $D=0x12 ; echo "A=$A <BR> B=$B <BR> C=$C <BR> D=$D"; ?> </body> </html>

Double浮點數型態 一般與指數二種表示法 表示方法 $a=12.3456;(一般) $b=-123.456;(一般負浮點數) $c=1.23e-2;(指數) $d=1.23e2;(指數)

Double浮點數型態 <html> <title>浮點數</title> <body> <? $A=12.3456 ; $B=-123.456 ; $C=1.23456789e-2; $D=1.23456789e2 ; echo "A=$A <BR> B=$B <BR> C=$C <BR> D=$D" ; ?> </body> </html>

String型態 文字的串列組合 在 PHP 中有三種指定字串的方法: 雙引號(“) 單引號(‘) here doc 語法(<<<)(補充)

String型態-雙引號 包含在雙引號裡頭的可以是一般文字字串。 如果含有變數的話,會以該變數的值代入。 與 C、Perl 一樣,PHP 也允許以「\」代表跳脫(escape)字元,在雙引號中加入具有特殊用途的符號,如:  \n:換行(newline)  \r:送出 CR(carriage)  \t:跳位(Tab)  \\:反斜線(backslash)  \$:錢字號(dollar sign)  \“:雙引號(double-quote)  \[0-7]{1,3}:八進位表示法的 regular expression  \x[0-9A-Fa-f]{1,2}:十六進位表示法的 regular expression 例:<?  $str_1 = ”I am here!“;  $str_2 = ”str_1 : $str_1“;  echo $str_2;  ?>  輸出的結果將是:str_1 : I am here!,原先被包含在雙引號中的變數($str_1)以其值代入了。

String型態-單引號 使用單引號要注意的是,在單引號中的變數不會以變數值代入。 另外,可以被 escape 的字元只有兩個:\‘ 與 \\。 例:<?  $str_1 = 'I am here!';  $str_2 = 'str_1 : $str_1';  echo $str_2;  ?> 輸出的結果將是:str_1 : $str_1,原先被包含在單引號中的變數($str_1)不會被其值所取代。 範例7-3

String型態-單引號 <html> <title>字串</title> <body> <? $A = "Hello " ; $B = "my friend.<br>\n" ; $C = "Today is sunday." ; echo "$A $B $C <hr>" ; echo "\$A=$A \$B=$B \$C=$C" ; ?> </body> </html>

String型態 兩個字串可以以”.”符號進行連接。 (string_cat.php) 字串函數 http://www.peterpanstudio.com/ver_two/cgi/index_php.htm http://tw2.php.net/manual/en/funcref.php

String型態-here doc 這種設定字串的方法只在 PHP4 提供,主要用於引用一整段文字,如: <?  $a = “abc”;  $str = <<< CHENSH  中文“測試”有雙引號<br>  中文‘測試’ $a 有單引號與變數  CHENSH;  echo $str;  ?>  輸出的 HTML 碼:  中文“測試”有雙引號  中文‘測試’ abc 有單引號與變數 上述的 CHENSH 是用來標示文字段落起迄位置的 identifier,可自行命名。另外,結束的 identifier 一定要放在該行的行首,否則將導致錯誤。

Array陣列型態 http://www.jollen.org/php/ebook/ch12.html 集合相同屬性的變數所成的集合。 可以是二維、三維或者多維陣列,其中的元素也很自由,可以是 string、integer 或者 double,甚至是 array。 語法:$陣列名稱[指標] 陣列由第 0 個元素開始配置。 例:  $a[0] = 1234;  $a[1] = 567;  $a = array(1234, 567); http://www.jollen.org/php/ebook/ch12.html $car0 $car1 $car2 $car3 $car4 $car[0] $car[1] $car[2] $car[3] $car[4] Array1.php

Object物件型態 類別(資料成員與成員函數)與物件(使用類別)。 物件的使用上比較麻煩,要先宣告類別,甚至必須先要有方法,方可使用物件。 例: <?  class foo {    function do_foo () {      echo "Doing foo.";    }  } $bar = new foo;  $bar -> do_foo ();  ?> 執行結果:  Doing foo. 先宣告類別

<? class table { var $color ; function set_color($new_color){ $this->color=$new_color ; } function show_color() { echo $this->color; echo "<br>\n" ; } } ?> <html> <title>物件</title> <body> <?php $T=new table() ; $D=new table() ; $T->set_color("Red") ; $D->set_color("Blue") ; echo "T table color is " ; $T->show_color() ; echo "D table coloe is " ; $D->show_color() ; </body> </html>

資源型態 負責與外部資源(檔案、資料庫、 影像等)聯繫。 不可以直接操作,需要透過特殊函數才能操作。 例如MySQL,需要透過MySQL函數來操作。 無法進行型態轉換

資源型態 <? $link=mysql_connect("localhost","","") or die("無法連接"); mysql_select_db("mysql") or die("無法開啟資料庫"); $query="select * from user"; $result=mysql_query($query); while($my_row=mysql_fetch_array($result)) { echo $my_row[0].$my_row[1].$my_row[2]; echo "<br>"; } mysql_free_result($result); mysql_close($link); ?>

Null型態 表示變數裏沒有任何值,而不是0。 例如: $n1=NULL; unset($n2); //清除變數內容變成Null echo $n1; echo $n2; echo $n3;

型態轉換 您可以強迫將變數的型態轉換,例如: <?   $a = 10;    // $a is an integer   $b = (double)$a;    // $b is an double  ?>  當字串被轉換成數值資料時,原則上是: 1. 如果字串含有 .、e 或 E,則當成是 double 型態,否則視為 integer。 2. 以字串的開頭字元能否辨識為準,無法辨識的均轉為數值 0。 例: <?  $foo = 1 + "10.5";                   // $foo is float (11.5)  $foo = 1 + "-1.3e3";                // $foo is float (-1299)  $foo = 1 + "bob-1.3e3";          // $foo is integer (1)  $foo = 1 + "bob3";                  // $foo is integer (1)  $foo = 1 + "10 Small Pigs";     // $foo is integer (11)  $foo = 1 + "10 Little Piggies"; // $foo is integer (11)  $foo = "10.0 pigs " + 1;           // $foo is integer (11)  $foo = "10.0 pigs " + 1.0;        // $foo is float (11)  ?>

PHP 變數 Variable

變數 用來暫存程式執行的結果或資料 命名規則: 一定以$為第一個字元 第二個字元必須是字母或底線_ 大小寫有別 $a與$A不同 盡量以有意義的名稱命名 不可使用關鍵字 如echo

變數 設定初始值 變數的資料型態由設定的初始值決定 指定立即值 $A = 100; 指定運算式 $A = $B+$C; 程式設計中的”=“符號代表指定,不表示等於 代表將等號右邊的值指定給等號左邊 而在PHP中可以有傳值設定與傳址設定兩種方式

傳值設定 Assign by copy 透過”=“符號複製立即值或運算結果給另一個變數 電腦記憶體中有兩份相同的資料,不過是存放位置不同 兩者互相獨立

傳值設定 Assign by copy <html> <title>傳值設定</title> <body> <? $A=10 ; $B=$A ; $B=$B+10 ; echo "\$A=$A <br>" ; echo "\$B=$B" ; ?> </body> </html>

傳址設定 Assign by reference 透過”=“符號複製等號右邊變數的儲存位置給等號左邊的變數 電腦記憶體中只有一份資料 兩者指的是同一個位置,更動任何一個變數值都會立即影響另外一個變數的值 設定方式:變數前再加上”&”符號 $A=&$B; 範例 8-3

傳址設定 Assign by reference <html> <title>變數值設定</title> <body> <? $A = 10 ; // $A的值為10 $B = $A ; // $A的值複製給$B $C = &$A ; // $A的記憶體位置給$C echo "執行計算前 <br>"; echo "A=$A <br>" ; echo "B=$B <br>"; echo "C=$C <p>"; $B=$B+10 ; // $B的值加10 $C=$C+20 ; // $C的值加20 echo "執行計算後:<br>" ; echo "A=$A <br>"; // 顯示$A,$B,$C的值 echo "B=$B <br>" ; echo "C=$C "; ?> </body> </html>

PHP變數型態 全域變數 區域變數 靜態變數 動態變數 預設變數 外部變數

變數影響範圍 變數的影響範圍通常是全域( global),自設定起,至該程式結束均有效 在自定的函數中,變數的影響範圍是區域( local),只侷限在函數內部。例: <?  $a = 1;  $b = 2;  function sum_test( ) {    return $a + $b;  }  echo sum_test( );  ?> 執行結果為 0,因為 $a 與 $b 的影響範圍無法達到 sum_test( ) 內部。

變數影響範圍-區域變數 <? Function MyFunction(){ echo "<< 在函數中 >> <br>" ; echo "設定前: <br>"; echo "A = $A <br>" ; echo "B = $B <p>" ; $A=10 ; // 區域變數 $B=20 ; echo "設定後: <br>"; } ?> <html> <title>區域變數</title> <body> $A = 1 ; // 全域變數 $B = 2 ; // 全域變數 MyFunction() ; echo "<< 在函數外 >> <br> "; </body> </html>

變數影響範圍 若希望在自定函數內引用外部的變數,則使用關鍵字 global 宣告,或是使用 global 變數陣列 $GLOBALS[ 變數名稱]。 例:<?   $a = 1;   $b = 2;   function sum_test_1( ) {     global $a, $b;     return $a + $b;   }   function sum_test_2( ) {     return $GLOBALS[“a”] + $GLOBALS[“b”];   }   echo sum_test_1( );   echo sum_test_2( ); 範例8-8, 8-9  ?> sum_test_1( ) 與 sum_test_2( ) 的執行結果均為 3。

變數影響範圍-全域變數 <? Function MyFunction() { global $A,$B ; $A=$A+10; $B=$B+10; } ?> <html> <title>全域變數</title> <body> <?php $A=1 ; $B=2 ; echo "呼叫函數前 :<br>" ; echo "A = $A <br>" ; echo "B = $B <hr width=200 align=left>" ; MyFunction() ; echo "呼叫函數後 :<br>" ; echo "B = $B <p>" ; </body> </html>

變數影響範圍-全域變數 <? Function MyFunction() { $GLOBALS["C"]=$GLOBALS["A"]+$GLOBALS["B"] ; } ?> <html> <title>GLOBALS陣列</title> <body> $A=1 ; $B=2 ; $C=0 ; MyFunction() ; echo "\$A=$A , \$B=$B , \$C=$C" ; </body> </html>

靜態變數 變數的值通常在函數執行完畢後就消失 如果要將變數內容在函數執行完畢後仍然可以保留,可以將變數需告成靜態變數。 Static $a; 只能夠使用在函數中 範例8-10, 8-11 有靜態變數,是否可以預見有動態變數?

靜態變數 <? Function addone() { $I=0 ; $I=$I+1 ; echo "\$I = $I<br>" ; } ?> <html> <title>區段變數生命週期</title> <body> addone() ; </body> </html>

動態(參照)變數 讓變數內容再變成另外一個新的變數 $name=“John”; $$name=“Lee”; 相當於 $John=“Lee”; 注意大括弧{ }與雙引號” ”的使用,尤其是動態變數陣列

以變數為名的變數(Variable Variables) 在 PHP 中,變數的名稱也可以是變數,例如: <?  $a = "hello";  $$a = "world";  echo $a . " " . $$a;    // 輸出結果:hello world  echo $a . " " . ${$a};    // 輸出結果:hello world  echo $a . " " . $hello;    // 輸出結果:hello world  ?>

以變數為名的變數(Variable Variables) <html> <title>動態變數寫法</title> <body> <? $name="John" ; $$name="Lee" ; echo "1. $$name <br>" ; echo "2. ${$name} <br>" ; echo "3. ".$$name."<br>" ; echo "4. ".${$name} ; ?> </body> </html>

預設變數 內定預設變數 在 PHP 執行時,有部份預設的變數可用,您可以執行 phpinfo( ) 以查看這些變數。例如: SERVER_NAME:chensh.loxa.edu.tw  HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) SCRIPT_FILENAME:/home/chensh/php/A_4.php 取用方式 $_SERVER[‘SERVER_NAME’] 或 & SERVER_NAME(與php.ini的register_globals設定有關)

預設變數 <? echo "目前執行的檔案名稱 ". $_SERVER['PHP_SELF']. "<br>"; echo "伺服器使用的軟體 ". $_SERVER['SERVER_SOFTWARE']. "<br>"; echo "文件的根目錄 ". $_SERVER['DOCUMENT_ROOT']. "<br>"; echo "使用者相關資訊 ". $_SERVER['HTTP_USER_AGENT']. "<br>"; echo "遠端使用者的位址 ". $_SERVER['REMOTE_ADDR']. "<br>"; echo "遠端使用者的連線埠 ". $_SERVER['REMOTE_PORT']. "<br>"; ?>

預設/外部變數 如果 php.ini 中 register_globals 被設定為 on 的話,上述的變數直接在前頭加上 $ 符號即可使用,例如:$SERVER_NAME。 倘若 register_globals 被設定為 off(預設值)的話,上述變數的讀取方法就不一樣了,它們被當作是 $_SERVER 陣列的一個元素,請用 $_SERVER[‘變數名稱’] 的方式來讀取它,例如:$_SERVER[‘SERVER_NAME’]。 http://php.benscom.com/manual/hk/language.variables.predefined.php PHP4後預設為OFF狀態

讀取外部變數 與php.ini 中的 register_globals 參數設定有關 使用全域變數陣列加以讀取 $GLOBALS, $_SERVER, $_GET, $_POST $_COOKIE, $_FILES, $_ENV, $_REQUEST $_SESSION 當register_globals=off時 (Simple1.html & simple1.php,p.2-21)

變數型態轉換 設定變數值時直接設定轉換型態 變數 = (資料型態) 運算式或變數; gettype(變數名); 取得變數資料型態 使用settype()函數強行轉換型態 Settype (變數, 新資料型態); Var_dump(); 取得變數資料型態與內容

變數型態轉換 <html> <title>資料型態的轉換</title> <body> <? $A=12.345 ; settype($A,integer) ; var_dump($A); $B=100 ; settype($B,string) ; var_dump($B); $B=$B."abc"; echo "\$A = $A Type is ".gettype($A)."<br>" ; echo "\$B = $B Type is ".gettype($B)."<br>" ; ?> </body> </html>