PHP程序設計實驗指導書_第1頁
PHP程序設計實驗指導書_第2頁
PHP程序設計實驗指導書_第3頁
PHP程序設計實驗指導書_第4頁
PHP程序設計實驗指導書_第5頁
已閱讀5頁,還剩39頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、php 程序設計 實驗指導書 主編教師:史朝陽 鄭大軟件學院 php 程序設計實驗指導書 1 目錄目錄 實驗一實驗一 架設架設 windows 下的下的 php 開發測試服務器開發測試服務器 .4 0. 實驗準備實驗準備.4 0.1 系統環境和 php 相關軟件、開發工具.4 0.2 實驗目的.4 0.3 實驗中的路徑說明.4 1. php 的安裝和配置的安裝和配置.4 1.1 安裝.4 1.2 配置.5 2. apache 的安裝和配置的安裝和配置.5 2.1 安裝軟件.5 2.2 配置服務.5 3. apache : web 服務的安裝和啟動服務的安裝和啟動.6 4. 測試測試 apach

2、e 服務器對服務器對 php 的支持能力的支持能力.6 5. mysql 的安裝和啟動數據庫服務器的安裝和啟動數據庫服務器 .6 6. 測試測試 php 與與 mysql 的協同的協同 .7 實驗二實驗二 php 基本語法實驗基本語法實驗.8 0 實驗準備實驗準備.8 0.1 實驗環境和相關工具軟件.8 0.2 實驗目的和內容.8 0.3 實驗中的約定.9 1 詞法結構詞法結構.9 1.1 大小寫敏感.9 1.2 語句和分號.10 1.3 注釋.10 1.4 標識符(常量標識符).11 2 數據類型數據類型.11 2.1 字符串.11 2.2 布爾型.12 2.3 數組型.12 2.4 對象型

3、.13 2.5 資源型.13 2.6 數據類型的檢測.15 3 變量變量.15 2 3.1 變量的變量.15 3.2 變量的作用域.17 3.3 垃圾收集.18 4. 表達式和操作符表達式和操作符.20 4.1 隱式類型轉換.20 4.2 字符串連接操作符.21 4.3 自增自減操作符.22 4.4 類型轉換操作符.22 4.5 其他操作符.23 5.流控制語句流控制語句.23 5.1 if語句.23 5.2 switch語句.26 5.3 while語句.27 5.4 for語句.28 5.5 foreach語句.28 5.6 exit語句.28 5.7 return語句.28 6.包含代碼

4、包含代碼.28 7.在頁面中嵌入在頁面中嵌入 php.30 實驗三實驗三 html 基礎實驗基礎實驗.31 0 實驗準備實驗準備.31 0.1 實驗環境和相關工具軟件.31 0.2 實驗目的.31 0.3 實驗內容.31 0.4 實驗中的說明.32 1. html 基本架構基本架構.32 2. 最簡單的表單和表單對象的使用最簡單的表單和表單對象的使用.32 實驗四實驗四 mysql 基礎實驗基礎實驗 .33 0. 實驗準備實驗準備.33 0.1 實驗環境和相關工具軟件.33 0.2 實驗目的.33 0.3 實驗內容.33 實驗五:系統建模與前臺(新聞列表實驗五:系統建模與前臺(新聞列表/新聞查

5、看)設計新聞查看)設計.34 0. 實驗準備實驗準備.34 0.1 實驗環境和相關工具軟件.34 鄭大軟件學院 php 程序設計實驗指導書 3 0.2 實驗目的和內容.34 1. 實驗具體環節實驗具體環節.34 1.1 系統建模.34 1.2 系統實現.35 實驗六:后臺管理(新聞管理實驗六:后臺管理(新聞管理/人員管理)程序設計人員管理)程序設計.37 0. 實驗準備實驗準備.37 0.1 實驗環境和相關工具軟件.37 0.2 實驗目的和內容.37 1. 實驗具體環節實驗具體環節.37 1.1 新聞錄入程序設計:.37 1.2 新聞修改程序設計:.38 1.3 人員信息添加程序設計:.38

6、實驗七:后臺管理(身份認證與后臺系統集成)程序設計實驗七:后臺管理(身份認證與后臺系統集成)程序設計.39 0. 實驗準備實驗準備.39 0.1 實驗環境和相關工具軟件.39 0.2 實驗目的和內容.39 1. 實驗具體環節實驗具體環節.40 1.1 認證界面denglu.php:.40 1.2 認證程序jiancha.php 在數據庫中檢查具有該帳號和密碼的用戶是否存在,存在則取出該用戶資料 (如renyuanid)存到session變量中去,然后轉向houtaiguanli.php。.40 1.3 身份把關程序.40 1.4 后臺管理集成界面(總界面)houtaiguanli.php 集成

7、后臺管理所有功能,是通向各管理功能程序的 領航處、出發點。 實現很簡單,使用 html 的超鏈接技術即可實現。.41 1.5 新聞系統后臺程序關系流程圖.41 4 實驗一 架設 linux 下的 php 開發測試服務器 0. 實驗準備 0.1 系統環境和 php 相關軟件、開發工具 操作系統:linux(red hat) 具體到的機房環境,請在 linux 環境下做 web 服務器:apache 2.0.63 (壓縮包文件:apache_2.0.63-win32.exe) php:php5.2.11 (壓縮包文件:php-5.2.11-win32.zip) 數據庫:mysql 5.1.39 (

8、壓縮包文件:mysql-essential-5.1.39-win32.zip) 腳本編輯器: editplus(已安裝好):圖形化編輯環境,速度慢,功能多,常用于復雜網頁設計 注: php 相關軟件、開發工具的獲得:相關軟件、開發工具的獲得:在我的 上下載 0.2 實驗目的 能夠快速部署 linux 下的開發測試服務器環境,以滿足同學們在宿舍、家中自己機器上學習、研究和開發 php 程序設計的需要或是實際工作的需要。 0.3 實驗中的路徑說明 為說明問題的簡單起見,路徑為比較簡單的示例路徑,但已經過測試。實際運用時,路徑完全可根據自 己需要設定。 1. p

9、hp 的安裝和配置 1.1 安裝 下載 php-5.2.5-win32.zip 軟件包,不需要安裝,在 c 盤根目錄下建立文件夾 c:php 。將軟 件包解壓縮到本目錄下。 在 c:php 目錄下找到 php.ini-dist 文件,將其名字改為 php.ini ,這是 php 的配置文件。 修改 php.ini 文件,過程如下:(1) 找到 extension_dir=”./” ,改為 extension_dir=”c:/php/ext” (2) 找到 “ ;extension=php_mbstring.dll ”去掉前面的“;”(3) 找到 “ ;extension=php_mysql.d

10、ll ” 去掉前面的“;”(4) 找到 “ ;extension=php_mysqli.dll ” 去 掉前面的“;” 修改完 php.ini 文件后,保存該文件,并復制到 c:windows 目錄下。 將 c:phplibmysql.dll 復制到 c:windowssystem32 目錄下 注:操作系統安裝目錄,具體位置見表1 鄭大軟件學院 php 程序設計實驗指導書 5 表 1:操作系統安裝目錄 操作系統操作系統安裝目錄 1.2 配置 通過修改 php.ini 中的參數來實現。對 mysql 而言,若無特殊要求,一般無須配置。因為 php 在 php.ini 中已經做好了對 mysql

11、的配置,所以一般無須修改。 2. apache 的安裝和配置 2.1 安裝軟件 雙擊 apache_2.0.63-win32.exe,按照提示,選擇 custom 安裝方式,然后一路默認,即完成安裝。 注意:如果您的電腦安裝了 iis,請先到控制面板關閉 iis 服務,因為 iis 服務器與 apache 服務器都使用 一個端口。 2.2 配置服務 單擊開始-程序- apache http server 2.2- configure apache server- edit the apache httpd.conf configuration file,打開 apache 的配置文件 http

12、d.conf,按表 2 提示進行配置: 注意:每處的配置要想起作用,必須將行首的#號(注釋符號)去掉;表示一個或多個空格 表 2 apache 配置 序號參數名和示例參數值配置方法說明 bindaddress(你所用機器的 ip 地址) 修改地址綁定(指定服務器地址) loadmodulephp5_modulec:/php/sapi/php5apache.dll 添加將 php 配置為 apache 的模塊(apache module)方式 port80 修改指定端口 serveradmin(你的郵箱地址,如 ) 修改指明管理員信箱 servernamessl 修改指明主機名稱 documen

13、trootd:websitehtdocs 修改web 文檔發布主目錄 修改該處目錄應與 web 文檔發布主目錄一致 scriptalias/php/c:/php/ addtypeapplication/x-httpd-php.php actionapplication/x-httpd-php/php/php.exe 添加指明腳本路徑 指明 php 腳本擴展名 指明 php 腳本解釋器程序名 directoryindexindex.htmindex.php 修改指定默認文檔 *描述以 httpd.conf 文件的行文順序進行 *表中路徑、地址、主機名、信箱等,實際配置時請根據自己情況進行 按表

14、1 所述,參考 apache 配置文件樣本,修改完畢后,保存。 6 測試配置是否成功。 1)在編輯完成后,我們還可以通過 “開始/程序/apache http server 2.2/configure apache server/test configuration來測試配置文件是否有語法錯誤等。 2)或者打開瀏覽器敲入:http:/localhost 能否見到服務器到測試頁面。能見到則配置成功。 3. apache : web 服務的安裝和啟動 (1)啟動 apache 服務: 單擊:開始-程序- apache http server 2.2- control apache service-

15、 start。 (默認情況下,每次操作系統啟動時自動啟動該服務,可更改) 4. 測試 apache 服務器對 php 的支持能力 測試目的:檢驗配置后的 apache 服務器是否提供了對 php 腳本的解釋能力(支持 php) 用 editplus 編寫測試腳本,存為 d:websitehtdocsceshi.php,內容為: 說明:phpinfo()是 php 內置函數,用來顯示 php 和 apache 配置信息,在瀏覽器中敲入 http:/localhost/ceshi.php,回車后若顯示類似圖 1 的 php 配置頁面(以 winxp 下為例) ,則說明你的 apache 服務器已經

16、支持 php 腳本,能夠解釋 php 腳本了;若不顯示類似畫面,則配置有誤,此時你的 apache 不能夠解釋 php 腳本,需重新配置。 圖 1 5. mysql 的安裝和啟動數據庫服務器 將 mysql-essential-5.1.39-win32.zip 解壓縮后,雙擊 setup.exe,按照提示,選擇 custom 安裝方 式,然后一路默認,遇到輸入密碼的地方,輸入 123 作為密碼。 測試安裝是否成功。單擊“開始” ,選擇“mysqlmysql server5.1mysql command line client” ,會出現如下圖所示的窗口,然后輸入 root 密碼,根據提示操作即

17、可 鄭大軟件學院 php 程序設計實驗指導書 7 6. 測試 php 與 mysql 的協同 php 方面:準備測試腳本方面:準備測試腳本 connect.php,存放在,存放在 d:websitehtdocs 下,其內容為:下,其內容為: 程序 2-13: ? $connection=mysql_connect(,root,123) or die(不能連接到 mysql 數據庫:.mysql_error(); echo 已經成功連接 mysql 數據庫; mysql_select_db(test)or die(不能選擇數據庫); echo 連接test數據庫已經成功; ?

18、(1)測試步驟 在瀏覽器地址欄輸入:http:/localhost/connect.php,回車,顯示如圖 2 所示,則表明 php 與 mysql 能 夠協同工作了。 圖 2 8 實驗二 php 基本語法實驗 0 實驗準備 0.1 實驗環境和相關工具軟件 具體到的機房環境,請在 windowsxp 環境下做本實驗: 操作系統:windowsxp web 服務器:apache 2.0.63 默認發布文檔路徑:c:apachehtdocs php:php5.2.11 安裝路徑:c:php 數據庫:mysql 5.1.39 使用默認路徑 腳本編輯器: 記事本 或 editplus-v3.11.46

19、3h 或 macromedia dreamweaver mx 中文版 注意:注意:使用以上腳本編輯器,若要保存為.php 文件,必須在保存時指明擴展名為.php 尤其是記事本,必須在保存時,單擊“保存類型”下拉框,選擇“所有文件(*.*)”類型,然后指定 文件擴展名是.php,單擊“保存”按鈕后,保存的文件才能保證是.php 文件。常見錯誤是直接保存,導致 保存的文件其實是文本文件,如 abc.php.txt 等以.txt 為擴展名的文本文件。 0.2 實驗目的和內容 實驗目的:熟練掌握 php 語言的基礎語法 實驗內容:從 7 個方面完成 php 基本語法實際體驗,分列如下: 一、詞法結構

20、大小寫 語句和分號 注釋 標識符 二、數據類型 字符串型 布爾型 數組型 對象型 資源型 各種數據類型的檢測 三、變量 變量的變量 變量的作用域 鄭大軟件學院 php 程序設計實驗指導書 9 垃圾收集:變量的內存管理 四、表達式和操作符 隱式類型轉換 字符串連接操作符 自增和自減操作符 類型轉換操作符 其他操作符 五、流控制語句 if 語句 switch 語句 while 語句 for 語句 foreach 語句 exit 語句 return 語句(2-12) 六、包含代碼 七、在 web 頁面中嵌入 php 0.3 實驗中的約定 所有實驗程序均與講義中的例子相對應,如程序 1-1.php,對

21、應講義中的例子例 1-1。 1 詞法結構 1.1 大小寫敏感 預備知識預備知識 變量區分大小寫,內置結構(while,for,if 等)及關鍵字(echo,class 等)不區分大小寫 【2-1】大小寫敏感的例子 php 程序 2-1送到用戶瀏覽器解釋后顯示的結果(運行結果,顯示在瀏覽器頁面中 的結果) 注意:要使運行結果達到真正分行(和注意:要使運行結果達到真正分行(和 html 輸出一致)輸出一致) ,請將程序,請將程序 2-1 中的中的n 換成換成,即可實現,即可實現, 如下例如下例 【2-1br】修改程序 2-1 后的程序 2-1br,直接實現分行(將程序 2-1 中的n 換成) 10

22、 php 程序 2-1br送到用戶瀏覽器解釋后顯示的結果(運行結果,顯示在 瀏覽器頁面中的結果) ? $name=hello1,world1; $name=hello2,world2; $name=hello3,world3; echo $name=$name; echo $name=$name: echo $name=$name; ? 原因:瀏覽器不解釋(或者說不識別,或忽略)經原因:瀏覽器不解釋(或者說不識別,或忽略)經 php 解釋解釋n 而成的空白換行,只有遇到而成的空白換行,只有遇到這個這個 html 中的換行標記,才解釋成換行。為了直接達到預期換行效果,將不再使用中的換行標記,才解

23、釋成換行。為了直接達到預期換行效果,將不再使用n,而是使用,而是使用 1.2 語句和分號 預備知識預備知識 簡單語句 復雜語句 分號的省略 【2-2】語句和分號 php 程序 2-2送到用戶瀏覽器解釋后顯示的結果(運行結果, 顯示在瀏覽器頁面中的結果) ? if($a=$b) echo 注意:; /簡單語句 echo $a 的值等于$b 的值; /上面部分為復雜語句 echo hello,world; /此處分號可省略 ? 1.3 注釋 預備知識預備知識 在必要的地方做注釋 注釋的形式及各自的適用處:shell 形式(#)、c+形式(/)、c 形式(/* */) 【2-6】c 形式的注釋作用

24、php 程序 2-6送到用戶瀏覽器解釋后顯示的結果(運行結果, 顯示在瀏覽器頁面中的結果) some stuff you want to be html. now this is regular html 鄭大軟件學院 php 程序設計實驗指導書 11 1.4 標識符(常量標識符) 預備知識預備知識 使用 define()設置常量標識符 【2-7】使用 define()設置常量標識符 php 程序 2-7送到用戶瀏覽器解釋后顯示的結果(運行結果, 顯示在瀏覽 顯示在瀏覽器頁面中的結果) 2 數據類型 2.1 字符串 預備知識預備知識 字符串的表示 單引號和雙引號在字符轉義上的不同作用:單引號僅

25、轉義反斜杠和單引號 【2-8】單引號和雙引號在字符轉義上的不同作用 php 程序 2-8送到用戶瀏覽器解釋后顯示的結果(運行 結果,顯示在瀏覽器頁面中的結果) ? $name=”sun shoulong”; /雙引號中的變量值將被輸出 echo “hi,$name”; echo hi,$name;/單引號中的變量名將被輸出, 因為單引號不認為$name 是變量 ? 注意:雙引號中的變量,若前面不加反斜杠注意:雙引號中的變量,若前面不加反斜杠進行轉義(將進行轉義(將$原樣輸出)原樣輸出) ,則在輸出字串的時候將輸出變量,則在輸出字串的時候將輸出變量 中的值中的值 【2-9】單引號僅支持的字符轉義

26、:反斜杠和單引號 php 程序 2-9送到用戶瀏覽器解釋后顯示的結果(運行結果, 顯示在瀏覽器頁面中的結果) 12 2.2 布爾型 預備知識預備知識 php 中為 false 值的情況 【2-10】判斷布爾值 php 程序 2-10送到用戶瀏覽器解釋后顯示的結果(運行結果, 顯示在瀏覽器頁面中的結果) ? $x=5; $y=”; if($x) echo $x 有一個 true 值; if(!$x) echo $x 有一個 false 值; if($y) echo $y 有一個 true 值; if(!$y) echo $y 有一個 false 值; ? 2.3 數組型 預備知識:預備知識:數組

27、的創建、遍歷;鍵名:數組元素的下標名稱,一般是從 0 開始的整數,也可以是字符串; 鍵值:數組元素中存儲的值 【2-11】數組的創建、遍歷:發明家記錄 php 程序 2-11送到用戶瀏覽器解釋后顯示的結果(運行結 果,顯示在瀏覽器頁面中的結果) edison, rotary engine=wankel, toilet=crapper); */ #遍歷數組$person,顯示其內容 foreach($person as $name)/訪問每個鍵 echo “hello,$name”; #遍歷數組$creator,顯示其內容 foreach($creator as $invention=$inve

28、ntor) echo “$invention was created by $inventor”; ? 鄭大軟件學院 php 程序設計實驗指導書 13 2.4 對象型 預備知識預備知識 類:oop 的單元,是包含屬性(變量)和方法(函數)的結構定義 類的定義 對象的創建、引用其屬性和方法 【2-12】類和對象的簡單例子 php 程序 2-12送到用戶瀏覽器解釋后顯示的結果(運行結果,顯 示在瀏覽器頁面中的結果) name=$newname; return $this-name; $ed=new person; $ed-name(edison); printf(“hello,%s”,$ed-na

29、me); $tc=new person; $tc-name(crapper); printf(“look out below,%s”,$tc-name); ? 2.5 資源型 預備知識:預備知識:資源的概念:以數據庫應用為例,在同時有眾多的數據庫連接存在時,要進行查詢和關閉連 接等操作,必須指明這些操作是對哪個連接的,所以有必要給每個連接賦予一個標識值,一般是整數。 這種標識值的數據類型稱為資源型。 資源的回收:程序結束時資源自動關閉,資源值被回收;作為局部變量的資源,當函數調用結束時,該 變量的值自動被 php 收回;顯示地關閉資源 【2-13】類和對象的簡單例子 ? /連接數據庫 $hos

30、tname=; $username=; $password=; echo 開始建立與服務器的連接; /$server_link 為資源型變量 $server_link=mysql_connect($hostname,$username,$password) or die (連接服務器失敗!程序中斷執行!); if($server_link) echo 與服務器的連接成功!; echo 開始打開數據庫 test; /$db_link 為資源型變量 $db_link=mysql_select_db(test,$server_link) or die (連接數據庫失敗!程序中斷執行!); 14 /d

31、ie 是 exit 的別名,它們的作用是強制中斷程序執行 /若程序在這里終止執行,則上面的資源型變量所占內存資源將自動回收(釋放資源型變量) echo 打開數據庫 test 成功!; echo 開始從數據庫 test 的表 abc 中取出數據; /將查詢結果存入數組(遍歷記錄集,將記錄集中的數據轉到數組) $sql=select * from abc; /$result 為資源型變量 $result=mysql_query($sql,$server_link); $i=0; while($temp_array =mysql_fetch_array($result) $abc_array$i0=

32、$temp_array a; $abc_array $i1=$temp_array b; $abc_array $i2=$temp_array c; $i+; echo 取出數據完畢!; mysql_free_result($result);/釋放記錄集,這是顯式地關閉資源,若程序終止執行,該關閉將自動進行 echo 開始關閉與服務器的連接; /斷開數據庫連接,這也是顯式地使用關閉函數回收資源變量 $db_close=mysql_close($server_link);/ $db_close 為布爾型變量 if($db_close) echo 關閉與服務器的連接成功!; else exit(關

33、閉與服務器的連接失敗!程序中斷執行!); echo 開始顯示數據; /將數組中的數據輸出到瀏覽器(各列以雙等號間隔) echo a 列數據=b 列數據=c 列數據; for($i=0;$icount($abc_array);$i+) echo $abc_array$i0.=. $abc_array$i1.=. $abc_array$i2.; echo 顯示數據結束,程序執行完畢。; ? php 解釋結果(html 輸出) (右鍵單擊該頁面,在快捷菜單中單擊“查看源文件”命令可看到) 送到用戶瀏覽器解釋后顯示的結果(運行結果,顯示在瀏覽器頁面中的結果) 鄭大軟件學院 php 程序設計實驗指導書

34、15 2.6 數據類型的檢測 預備知識預備知識 數據類型檢測函數 【2-14】數據類型檢測 php 程序 2-14送到用戶瀏覽器解釋后顯示的結果(運行結果,顯示在瀏 覽器頁面中的結果) 3 變量 3.1 變量的變量 預備知識預備知識 變量的概念和作用;變量的聲明和使用;變量的變量 【2-15】php 變量無類型檢查,無須聲明,類型隨用隨變 16 php 程序 2-15送到用戶瀏覽器解釋后顯示的結果(運行結果,顯 示在瀏覽器頁面中的結果) ? #php 變量無類型檢查 $what=fred; echo $what 的值=$what; if(is_string($what) echo $what

35、是字符串型變 量; $what=35; echo $what 的值=$what; if(is_int($what) echo $what 是整型變量 ; $what=array(fred,35,wilma); echo $what 的值為:; foreach($what as $e) echo $e; if(is_array($what) echo $what 是數組型變量 ; ? 【2-16】空變量的例子 php 程序 2-16送到用戶瀏覽器解釋后顯示的結果(運行 結果,顯示在瀏覽器頁面中的結果) 【2-17】變量的變量 php 程序 2-17送到用戶瀏覽器解釋后顯示的結果(運行結果, 顯示

36、在瀏覽器頁面中的結果) ? #變量的變量 $r=i; $r=1; echo 因為$r=$r; echo 所以$r=$r; echo 又因為$r=.$r.; echo 故$r=.$r; echo :-)你明白了嗎?; ? 鄭大軟件學院 php 程序設計實驗指導書 17 3.2 變量的作用域 預備知識預備知識 變量按其作用域分為:局部變量、全局變量。靜態變量、函數的參數屬于局部變量;從局部訪問全局變 量的方法;從全局訪問局部變量的方法 【2-19】不能從全局(函數外部)直接訪問局部變量 php 程序 2-19送到用戶瀏覽器解釋后顯示的結果(運行結 果,顯示在瀏覽器頁面中的結果) 【2-20】從局部

37、訪問全局變量,方法 1:使用 global 關鍵字聲明 php 程序 2-20送到用戶瀏覽器解釋后顯示的結果(運行結 果,顯示在瀏覽器頁面中的結果) 【2-21】從局部訪問全局變量,方法 2:引用全局變量數組$globals php 程序 2-21送到用戶瀏覽器解釋后顯示的結果(運行結 果,顯示在瀏覽器頁面中的結果) 18 【2-22】使用靜態變量的好處::使全局可間接訪問到 php 程序 2-22送到用戶瀏覽器解釋后顯示的結果(運行結果,顯示 在瀏覽器頁面中的結果) ? #使用靜態變量的方法,強制保留局部變量上 #次調用結束時的值,使全局可間接訪問到 function update_coun

38、ter() static $counter=0;/這個$counter 是局部的變 量,聲明為靜態,并賦初始值 0 $counter+; echo 局部靜態變量$counter 這時的值 =$counter; $counter=10;/這個$counter 是全局的變量 update_counter(); update_counter(); echo 全局變量$counter 這時的值=$counter; ? 【2-23】全局不可直接訪問局部變量(可通過將局部變量聲明為靜態的方法,參見 2-22) php 程序 2-23送到用戶瀏覽器解釋后顯示的結果(運行結果,顯示 在瀏覽器頁面中的結果) ?

39、 #函數參數作為一種局部變量,是不能直接被 外部訪問的 function greet($name) echo hello,$name; greet(孫壽龍); if($name=null) echo $name 是一個空變量,訪問不到!; ? 3.3 垃圾收集 預備知識預備知識 無用變量的收回;php 內存管理;引用計算;寫時復制 【2-24】php 的寫時復制 php 程序 2-24 鄭大軟件學院 php 程序設計實驗指導書 19 ? #php 通過使用引用計算和寫時復制進行內存管理從而節省了時間和內存 #一、寫時復制 /對共享同一首地址的多個變量,修改其中一個,如$worker,則此時為$

40、worker 分配新內存空間, /將其新元素內容寫入該空間,將其舊元素內容復制到該空間 /這就是寫時復制 /發生寫時復制,為$worker 開辟新空間,將$worker 最新內容復制到這里,以不影響$other 的內容 $worker1=36; /同時發生引用計算:原$worker 與$other 共享的那個首地址引用的變量名減少 1 個, 只剩下了$other(引用計數減少 1) echo 修改數組$worker 的第二個元素,發生寫時復制及引用計算后,; echo 新數組$other 的內容:; foreach($other as $a) echo $a; echo 新數組$worker

41、的內容:; foreach($worker as $b) echo $b; echo 是不是很好玩?; ? php 解釋結果(html 輸出) (右鍵單擊該頁面,在快捷菜單中單擊“查看源文件”命令可看到) 送到用戶瀏覽器解釋后顯示的結果(運行結果,顯示在瀏覽器頁面中的結果) 20 【2-25】垃圾收集:變量的回收使用 unset()回收變量(釋放變量) php 程序 2-25送到用戶瀏覽器解釋后顯示的結果(運行結 果,顯示在瀏覽器頁面中的結果) ? #垃圾收集:變量的回收使用 unset()釋放變量 echo 從未對$name 賦過值,這時:; $s1=isset($name);/$s1 為

42、false if($s1) echo $name 已存在,其值=$name; else echo $name 不存在,其值=$name; $name=fred; $s1=isset($name);/$s1 為 true if($s1) echo $name 已存在,其值=$name; else echo $name 不存在,其值=$name; echo 現在從內存中釋放(刪除)$name:; unset($name); $s1=isset($name);/$s1 為 false if($s1) echo $name 已存在,其值=$name; else echo $name 不存在,其值=$n

43、ame; ? 鄭大軟件學院 php 程序設計實驗指導書 21 4. 表達式和操作符 4.1 隱式類型轉換 預備知識預備知識 數字間進行字符串拼接的規則;字符串轉換數字后的數字值規則 【2-26】數字間進行字符串拼接的規則:數字首先變為字串,然后再拼接 php 程序 2-26送到用戶瀏覽器解釋后顯示的 結果(運行結果,顯示在瀏覽 器頁面中的結果) 【2-27】字符串轉換數字后的數字值規則 假定以數字開始,該數字即為轉換后的數字值;若未找到數字則轉換后的數字值為 0;若開頭的數字包含 一個句點或大寫或小寫的 e,則轉換后的數字值為浮點型 php 程序 2-27送到用戶瀏覽器解釋后顯示的結 果(運行

44、結果,顯示在瀏覽器頁 面中的結果) ? #字符串轉成數字后的數字值規則 $a=9 lives-1;/8(int) $b=3.14 pies*2;/6.28(float) $c=9 lives.-1;/8(float) $d=1e3 points of light+1;/1101 echo $a=$a; echo $b=$b; echo $c=$c; echo $d=$d; ? 4.2 字符串連接操作符 預備知識預備知識 字符串連接操作符;數字與字串連接時,數字先轉換成字串 【2-28】數字在與字符串連接時,先自動變成字符串 22 php 程序 2-28送到用戶瀏覽器解釋后顯示的結果(運行 結果

45、,顯示在瀏覽器頁面中的結果) 類似的,如 2-29: 【2-29】和 2-28 差不多的程序 php 程序 2-29送到用戶瀏覽器解釋后顯示的結果(運 行結果,顯示在瀏覽器頁面中的結果) 4.3 自增自減操作符 預備知識預備知識 數字的自增自減(按數字順序) ;字母的自增自減(按字母順序) 【2-30】 php 程序 2-30送到用戶瀏覽器解釋后顯示的結果(運 行結果,顯示在瀏覽器頁面中的結果) ? #字母的自增自減運算 echo 小寫字母自增:; $a=a; while($a=z) echo $a+; echo ; echo 大寫字母自增:; $a=a; while($a=z) echo $

46、a+; echo ; ? 請編程驗證: (該圖顯示的是部分結果) 鄭大軟件學院 php 程序設計實驗指導書 23 字符串字符串+ ab za spazspba k9l0 4243 4.4 類型轉換操作符 預備知識預備知識 類型轉換操作符;類型轉換的臨時性;類型轉換的真正實現 【2-31】類型轉換的臨時性 php 程序 2-31送到用戶瀏覽器解釋后顯示的結果(運 行結果,顯示在瀏覽器頁面中的結果) 【2-32】類型轉換的真正實現 php 程序 2-32送到用戶瀏覽器解釋后顯示的結果(運 行結果,顯示在瀏覽器頁面中的結果) ? #轉換自身類型并保值 $a=5; if(is_string($a) e

47、cho 開始,$a 是字符串型,值為:$a; $a=(int)$a; if(is_int($a) echo 轉換類型并自賦值后,$a 是整型,值為:$a; ? 4.5 其他操作符 預備知識預備知識 錯誤抑制操作符(例子程序見 2-13) ;三元操作符 【2-33】三元操作符 php 程序 2-33送到用戶瀏覽器解釋后顯示的結果(運行結果, 顯示在瀏覽器頁面中的結果) 24 ? #三元操作符使用的例子 $a=1; $b=2; echo $a=$a,$b=$b; echo $a$b?$a$b:$a 5.流控制語句 5.1 if 語句 預備知識預備知識 if 結構、if-else 結構、if-els

48、e 鏈接(層進)、if-elseif 結構、if-else-endif 結構 【2-34】使用 if-else-endif 結構 php 程序 2-34送到用戶瀏覽器解釋后顯示的結果(運 行結果,顯示在瀏覽器頁面中的結果) ? #if 語句的使用 echo 常見使用方式:c 語言的方式:; $user_validated=true; if($user_validated) echo 歡迎你!; $greed=1; else echo 對不起,禁止訪問!; exit; echo 還可使用 php 提供的另一種方式:if-endif 結構; $user_validated=; if($user_v

49、alidated): /注意冒號 echo 歡迎你!; $greed=1; else:/注意冒號 echo 對不起,禁止訪問!; exit; endif; /句尾是分號,不是冒號 ? 【2-35】if 語句的使用:嵌入到 html 中(表單驗證) php 程序 2-35送到用戶瀏覽器解釋后顯示的結果(運行結果, 顯示在瀏覽器頁面中的結果) 鄭大軟件學院 php 程序設計實驗指導書 25 歡迎你: 請重新登陸! 【2-36】if 語句的鏈接(層進)(使用 if-else 結構) php 程序 2-36送到用戶瀏覽器解釋后顯示的結果(運行結果,顯示 在瀏覽器頁面中的結果) 90) print(優秀

50、); else if($fenshu80 else if($fenshu 【2-37】if 語句的鏈接(層進)(使用 if-elseif 結構) php 程序 2-37送到用戶瀏覽器解釋后顯示的結果(運行結 果,顯示在瀏覽器頁面中的結果) ? #if 語句的鏈接(層進)(使用 if-elseif 結構) #閱讀性比 2-36 好 echo 本程序閱讀性比程序 2-36 好,以下是運行結果; $fenshu=61; echo 你的分數是:$fenshu,屬于:; if($fenshu90) print(優秀); elseif($fenshu80 elseif($fenshu 【2-38】用 if

51、 結構的 html 輸出一般做法 php 程序 2-38送到用戶瀏覽器解釋后顯示的結果 (運行結果,顯示在瀏覽器頁面中的 結果) ? #用 if 結構的 html 輸出一般做法 $fenshu=61; echo 以下結果用 if 結構嵌入 html 實現,程序可讀性稍差; ? 60) echo 及格;else echo 不及格;? 用三元操作符簡化使更簡潔的例子見 2-39 【2-39】用三元操作符簡化使 2-38 更簡潔的例子 php 程序 2-39送到用戶瀏覽器解釋后顯示的結果 (運行結果,顯示在瀏覽器頁面中的 結果) ? #用三元操作符簡化使 2-38 更簡潔的例子 $fenshu=61

52、; echo 以下結果用三元操作符簡化 if 結構實現,程序可讀性好; ? ? echo .($fenshu60?及格:不及格).; ? 進一步的拼接字串的例子見程序 2-39a.php 【2-39a】用三元操作符簡化使 2-39 更簡潔的例子 php 程序 2-39a ? #比 2-39 字串拼接更復雜的例子 $fenshu=61; echo 以下結果用三元操作符結合復雜字串拼接實現,程序可讀性一般,但移植性好; echo .($fenshu60?及格:不及格).; ? php 解釋結果(html 輸出) (右鍵單擊該頁面,在快捷菜單中單擊“查看源文件”命令可看到) 鄭大軟件學院 php 程

53、序設計實驗指導書 27 送到用戶瀏覽器解釋后顯示的結果(運行結果,顯示在瀏覽器頁面中的結果) 5.2 switch 語句 預備知識預備知識 switch 的 c 語言形式、switch-endswitch 結構、switch 語句中 case 的合并 【2-40】switch-endswith 結構的用法 php 程序 2-40送到用戶瀏覽器解釋后顯示的結果(運行結果, 顯示在瀏覽器頁面中的結果) 【2-41】case 的合并 php 程序 2-41送到用戶瀏覽器解釋后顯示的結果(運行結果, 顯示在瀏覽器頁面中的結果) 28 5.3 while 語句 預備知識預備知識 while 的 c 語言

54、形式(傳統 while()等結構)、while-endwhile 結構 【2-42】 php 程序 2-42送到用戶瀏覽器解釋后顯示的結果(運行結果, 顯示在瀏覽器頁面中的結果) ? #while 循環 #從 1 加到 10 /使用傳統 while結構 $total=0; $i=1; while($i 【2-43】while-endwhile 循環 php 程序 2-43送到用戶瀏覽器解釋后顯示的結果(運行結果, 顯示在瀏覽器頁面中的結果) ? #while-endwhile 循環 #從 1 加到 10;使用傳統 while-endwhile 結構 $total=0; $i=1; while(

55、$i 鄭大軟件學院 php 程序設計實驗指導書 29 5.4 for 語句 預備知識預備知識 fo 循環的 c 語言形式(傳統 for()等結構)、for-endfor 結構 【2-44】for 循環中多表達式應用 php 程序 2-44送到用戶瀏覽器解釋后顯示的結果(運行結 果,顯示在瀏覽器頁面中的結果) ? #用 for 循環計算 2 的 0 次到 9 次冪的和 $total=0; $total0=0; for($i=1,$j=1;$i=10;$i+,$j*=2) echo 第.$i.步: $total=.$total.+.$j; $total+=$j; echo =$total; ech

56、o 使用 for 結構,計算結果是: $total=1+2+4+8+.+512=$total; ? 【2-45】for 循環的死循環的一個例子(因死機,效果圖略) php 程序 2-45 ? for(;)/for 循環的死循環的一個例子 echo 永不停歇,耗盡你的計算機的資源!; ? 5.5 foreach 語句 預備知識預備知識 foreach()語句;foreach-endforeach 語句;循環體中對數組元素的遍歷:訪問每個鍵,訪問每個鍵和鍵值 實驗程序見:程序 2-11 5.6 exit 語句 預備知識預備知識 exit 語句的作用;使用形式 實驗程序見:程序 2-13 5.7 r

57、eturn 語句 預備知識預備知識 return 語句的作用;使用形式 實驗程序見:程序 2-12 6.包含代碼 預備知識預備知識 30 require 和 include 的作用和區別;使用形式 【2-48】使用包含文件 php 程序 2-48 ? #使用包含文件 #新建一個文件 2-48-conn.php,將 2-13 的 2 到 20 行復制粘貼到 2-48-conn.php 中,保存作為包含文件, #2-48-conn.php 專門負責連接服務器,打開 test 數據庫 #新建一個文件 2-48-db_close.php,將 2-13 的 38 到 42 行復制粘貼到 2-48-db_

58、close.php 中,保存作為包含 文件, #2-48-db_close.php 專門負責關閉與服務器的連接 #本程序采用引用上述兩個包含文件的形式,是對程序 2-13 的簡化,運行效果與 2-13 完全一樣 /連接服務器,打開數據庫 test include(2-48-conn.php); echo 開始從數據庫 test 的表 abc 中取出數據; /將查詢結果存入數組(遍歷記錄集,將記錄集中的數據轉到數組) $sql=select * from abc; /$result 為資源型變量 $result=mysql_query($sql,$server_link); $i=0; whil

59、e($temp_array =mysql_fetch_array($result) $abc_array$i0=$temp_array a; $abc_array $i1=$temp_array b; $abc_array $i2=$temp_array c; $i+; echo 取出數據完畢!; mysql_free_result($result);/釋放記錄集,這是顯式地關閉資源,若程序終止執行,該關閉將自動進行 /關閉與服務器的連接 include(2-48-close.php); echo 開始顯示數據; /將數組中的數據輸出到瀏覽器(各列以雙等號間隔) echo a 列數據=b 列數

60、據=c 列數據; for($i=0;$icount($abc_array);$i+) echo $abc_array$i0.=. $abc_array$i1.=. $abc_array$i2.; echo 顯示數據結束,程序執行完畢。; ? 2-48-conn.php: ? /連接數據庫 $hostname=; $username=root; $password=ilongilong; echo 開始建立與服務器的連接; /$server_link 為資源型變量 $server_link=mysql_connect($hostname,$username,$password) or die(連

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論