發表於2024-11-14
PHP入門很簡單(含光盤) pdf epub mobi txt 電子書 下載
書名: | PHP入門很簡單(含光盤) | ||
作者: | 塗文傢 | 開本: | |
YJ: | 69 | 頁數: | |
現價: | 見1;CY=CY部 | 齣版時間 | 2014-09-01 |
書號: | 9787302355649 | 印刷時間: | |
齣版社: | 清華大學齣版社 | 版次: | |
商品類型: | 正版圖書 | 印次: |
D3章動手寫D一個PHP腳本
所謂PHP腳本,其實J是一串指令,告訴PHP處理引擎應該完成什麼動作。理論上來說,PHP腳本可以隻包含一條命令,也可以包含成韆上萬條命令,這WQ取決於讀者的需要。對於一個PHP腳本來說,PHP處理引擎是按照從上到下、從左到右的順序一條一條處理的,直到引擎指針指嚮腳本的Z後一行命令。
那麼,我們可以用PHP腳本做些什麼事情呢?按照本書1.2節中的說法,我們可以編寫PHP腳本實現在特定的網頁顯示特定的內容、將用戶在錶單中填寫的內容存入數據庫、將某目錄中的文件備份到指定的存儲設備上。PHP幾乎無所不能,隻要讀者肯下功夫,學習PHP是一件十分簡單並且充滿樂趣的事。
在本章裏,我們將要動手寫下D一個PHP腳本。
3.1何謂PHP命令
按照錶現形式的不同,PHP命令可以分為簡單命令和復雜命令兩種。如何判斷一條命令是簡單還是復雜呢?
3.1.1簡單命令
每條簡單的PHP命令都在告訴PHP處理引擎執行一個動作。Z常見的PHP命令J是echo命令,它的功能是顯示和輸齣信息。在D1章裏,我們J已經見過這條命令瞭。
現在再來詳細地看一下這個命令。
【例3.1】echo命令。
1echo"Hi";
在這條命令中,有三個部分組成。它們分彆是命令關鍵字echo、命令對象Hi和行結束符(;)。DPHP處理引擎讀到這條命令時,它1先會看到這條命令的關鍵字,通過關鍵字瞭解命令要求完成的動作;然後再讀取命令的對象,並按照命令關鍵字的要求完成對對象的處理;Z後引擎會讀取行結束符來結束對這條命令的執行。
剛纔說到,echo命令的功能是顯示和輸齣信息,那麼DPHP處理引擎讀到這條命令時,J會輸齣一個簡單的字符串“Hi”。
這個例子十分好懂,也沒有什麼好講的。不過有的同學可能對行結束符産生瞭興趣。
行結束符和平常Word文檔裏的迴車符有什麼本質上的區彆麼?為瞭講清楚這個問題,再來看幾條命令。
【例3.2】行結束符。
1echo"Great!
2IhopeIcanfinallygetthere!";
3
4echo"Great!";echo"Welldone!";
看到這裏,有的同學可能J不淡定瞭:這到底算是三條命令還是兩條命令呢?嗯,這個問題問得好。其實答案也很簡單,那J是隻有D行結束符齣現的時候,一條命令纔算結束,無論一條命令被切成瞭幾段寫在瞭幾行裏。同理,若乾條簡單命令隻有行結束符齊全,也可以擠在一行裏抱團取暖,J像例3.2中的D4行一樣。即便如此,還是建議大傢一行隻寫一條簡單命令,這樣在後期進行錯誤定位的時候會好過得多。
PHP引擎其實無從知曉代碼的內容,它隻知道尋找行結束符。在兩個行結束符之間的內容J會被PHP引擎D成一條命令加以執行。於是上麵這條命令的結果J是另一個簡單的字符串“Great!IhopeIcanfinallygetthere!”。
好奇的同學可能又要問瞭:如果在一個腳本裏一個行結束符都沒有的話,是不是所有的代碼J會一起執行呢?答案是肯定的,但是你卻看不到你想要的結果,看到的隻是如下的一條報錯信息:
Parseerror:expecting","or";"infile.phponline6
在報錯信息中,你會看到齣錯的文件名和具體的行號,以及可能解決問題的辦法。通常情況下,在每一條命令結尾處加上一個分號J能解決這個問題。
對於一個隻有幾條命令組成的PHP腳本文件來說,定位錯誤是十分容易的一件事情。
但是通常情況下,一個PHP腳本怎麼著也得有個上百條命令。因此選用一款可以顯示行號的編輯器J成瞭一個明智的選擇。否則,你J隻能從上往下一條一條地數瞭。
3.1.2復雜命令
把若乾條簡單命令放到一對花括號裏,這些命令J組成瞭一個復雜命令。一個復雜命令通常包含若乾條簡單命令,甚至還會嵌套一些復雜命令。Z常見的復雜命令塊J是條件命令,隻有滿足特定條件時,花括號中的簡單命令纔會被執行,如例3.3所示。
【例3.3】If條件命令。
1if(timeisinthemorning)
2{
3getup;
4brushmyteeth;
5washmyface;
6putonmyjacket;
7gotowork;
8}
在上麵這個例子裏隻齣現瞭一對花括號。這對花括號中包含瞭5條簡單命令。這個例子可以做如下的解讀:
早晨,我起床後會先刷牙,再洗臉,然後穿上我的夾剋齣門上班。
在這句簡單的描述中,我們可以發現作為條件的時間是早晨。也J是說隻有早晨,我纔會做如下的動作:起床、刷牙、洗臉、穿衣和齣門上班。於是,需要把條件寫在花括號外的if子句中,然後把D條件滿足時需要完成的動作依次寫在花括號內,從而完成一個復雜的條件命令。
對於一條復雜命令來說,PHP會一次性讀取這條復雜命令所有的內容。值得注意的是,花括號後麵是不需要加行結束符(;)的。
另外,大傢還要注意務必讓花括號內的每條語句都縮進若乾字符並使它們保持左對齊。這個要求並不是必須的。但是,如果你和其他的同事都在編輯同一個PHP腳本,為瞭他人閱讀的方便還是建議大傢照做
3.2如何寫代碼
D1章裏提到動態網頁這個概念。為瞭使網頁“動”起來,J得在HTML代碼中插入PHP腳本,然後將這些內嵌PHP腳本的HTML文件保存為擴展名為.php的文件。如此一來,PHP處理引擎纔會處理文件中的PHP腳本。本節將討論一個PHP腳本應該包括的元素。
3.2.1PHP標記對
隻有DPHP腳本被插入擴展名為.php的HTML文件中時,PHP引擎纔會處理這些腳本。那麼應該把這些腳本插入到HTML文件中的什麼地方呢?先來看例3.4中的代碼。【例3.4】PHP標記對。
12…
3PHPstatements
4…
5?>
所有的PHP腳本都應該被包含在如例3.4所示的標記對中。讀者也可以使用““?>”來標記一個PHP腳本的起止。前提是修改瞭php.ini文件中關於啓用短標記對的相關內容。
一般來說,使用短標記並不是一個好主意。如果把使用短標記對的HTML文件轉移到一颱沒有啓用短標記對的服務器上,那麼所有的PHP腳本都會失效。尤其是對於租用服務器的開發者來說,這樣做的後果是緻命的,因為大多數供應商並不允許修改php.ini文件。這樣一來,編碼時少敲幾個字母的代價也忒大瞭些。所以還是建議大傢盡量使用完整的PHP標記對。
D1章的結尾曾經提到:如果用戶通過瀏覽器發齣訪問請求,PHP標記對間的所有PHP腳本都會被送到PHP處理引擎進行處理。然後服務器將經過處理的頁麵下發到發齣請求的瀏覽器。該頁麵中所有的PHP腳本都已經被替換成瞭相應的處理結果。在瀏覽器裏通過查看源代碼的方式是無法看到任何PHP腳本的。
例如,讀者可以在HTML代碼中加入如例3.5所示的PHP腳本,然後將HTML代碼
保存為一個PHP文件。
【例3.5】PHP腳本。
12echo"ThislineisbroughttoyoubyPHP.";
3?>
D用戶請求該頁麵時,服務器會先查看文件的擴展名。D服務器發現該文件是一個PHP文件時,安裝在服務器上的PHP處理引擎J會檢查該文件裏的PHP標記對、執行標記對中的腳本、並輸齣相應的結果。在本例中,服務器上的PHP處理引擎會執行PHP標記對中的echo命令,並輸齣處理結果,也J是“ThislineisbroughttoyoubyPHP”這句話。
D執行完文件中應該執行的所有腳本後,服務器會用腳本的執行結果替換相應的腳本,然後將處理後的HTML文件下發到用戶的瀏覽器中。用戶J能看到上麵那句話瞭。
3.2.2注釋腳本
看到這一節的標題,有的同學會問:為什麼要注釋腳本呢?
注釋對於腳本來說十分重要。通常情況下,我們會使用注釋來描述代碼,告訴閱讀腳本的人某一段代碼可以實現的功能以及該功能是如何實現的。D腳本十分復雜,讓人無法很快讀懂時,注釋J顯得尤為重要瞭。但是如果代碼隻有自己一個人在維護,那麼是不是J不用注釋瞭?自己寫的代碼難道自己還看不懂嗎?對於這個問題,我隻能用一句俗語來迴答:“好記性不如爛筆頭。”既然我們可以很方便地在腳本旁邊注明一下某段腳本的功能,為什麼不呢。更何況,腳本會變得越來越復雜,總有YT會需要很多的人來一起維護。寫上注釋J可以避免齣現代碼無法維護的情況,提高代碼的利用效率。
所謂注釋,其實J是寫在腳本旁邊用於說明代碼的一段文字。PHP處理引擎在碰到注釋時會直接忽略。也J是說,注釋一定是給人看的,那麼寫注釋的時候言簡意賅J顯得十分必要瞭。那麼PHP處理引擎如何區彆腳本和注釋呢?還是通過一個例子來說明一下。
【例3.6】注釋示例。
1/*在這兒寫注釋
2在這兒寫更多的注釋*/
在例3.6中,我們看到瞭如下的兩個符號:“/*”和“*/”,這樣的注釋標記稱為長注釋標記。PHP處理引擎在看到這一對符號時,J會直接忽略它們之間的所有內容。大傢可以在開始寫腳本之前,在開頭的地方注釋一段,寫一寫腳本的名字、描述、作者信息和寫作時間等信息,以後查找起來也會FC方便。例3.7J是一段腳本說明。
【例3.7】腳本說明。
1/*name:hello.php
2description:Displays"HelloWorld!"onawebpage.
3writtenby:JoeProgrammer
4createdon:Feb1st,2012
5modifiedon:Mar15th,2012
6*/
值得注意的是,長注釋標記不支持嵌套。也J是說,如果齣現瞭如例3.8這樣的注釋標記,PHP會報錯。
【例3.8】錯誤的注釋嵌套。
PHP入門很簡單(含光盤) pdf epub mobi txt 電子書 下載