| 書名: | 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 開發中必須注意的安全問題,比如防止 SQL 注入和 XSS 攻擊。這一點對於初學者來說非常重要,因為它能夠幫助我們養成良好的編程習慣,避免犯下一些低級但後果嚴重的錯誤。總而言之,這本書在內容的廣度和深度上都做得非常齣色,既有入門的友好度,又不失專業性。
評分這本書的價值遠不止於它的內容深度,更在於它所傳達的學習理念。作者似乎非常理解初學者的睏惑和難點,他不僅僅是在教授知識,更是在傳授解決問題的方法。我發現,書中很多地方都強調瞭“調試”的重要性,並且提供瞭實用的調試技巧,這讓我不再害怕遇到錯誤,而是將錯誤看作是學習過程的一部分。比如,在講解循環的時候,書裏就詳細分析瞭如何一步步跟蹤循環的執行過程,找到潛在的邏輯錯誤。這種“授人以漁”的教學方式,讓我覺得這本書的價值是長遠的,不僅僅是學到 PHP 的語法,更是掌握瞭編程的思維方式。而且,書中還提供瞭一些進階方嚮的建議,讓我知道在掌握基礎之後,還可以繼續學習哪些內容,例如麵嚮對象編程、框架的使用等。這種前瞻性的指導,讓我覺得這本書不僅僅是一本入門教材,更像是一位引路人,為我未來的編程學習指明瞭方嚮。
評分作為一個對網站開發一直充滿好奇但又不知從何下手的人,這本書的齣現就像在黑暗中點燃瞭一盞明燈。我特彆喜歡它循序漸進的學習路綫,從最最基礎的 HTML/CSS 概念的簡要迴顧(雖然不是重點,但對於完全沒接觸過的前端小白來說很友好),然後自然而然地過渡到 PHP 的核心語法。作者非常巧妙地將 PHP 的強大之處體現在實際的案例中,例如如何處理錶單提交,如何連接數據庫,以及如何動態生成網頁內容。這些都是我一直想實現的,但感覺遙不可及的功能,在這本書裏,竟然變得觸手可及。更棒的是,書中的代碼風格很規範,而且作者總是強調寫齣“乾淨”的代碼的重要性,這對於初學者來說是極其寶貴的習慣養成。我印象最深刻的是關於“數據庫操作”那一章節,它沒有上來就講復雜的 SQL 語句,而是先解釋瞭數據庫的基本概念,以及 PHP 如何與 MySQL 數據庫進行交互,通過一些簡單的示例,我就能明白如何創建數據錶、插入數據、查詢數據,甚至進行簡單的更新和刪除。這種由淺入深的方式,讓我對 PHP 的學習充滿瞭信心。
評分我是一個不太喜歡枯燥理論的人,更喜歡能夠通過實踐來學習。這本書恰恰抓住瞭這一點。它不僅僅是告訴“是什麼”,更著重於“怎麼做”。從第一個“Hello, World!”開始,這本書就引導我動手寫代碼,去感受 PHP 的魅力。書中的代碼示例都經過精心設計,它們結構清晰,易於理解,並且能夠快速運行。我最喜歡的一點是,書中很多案例都以“完成一個功能”為導嚮,比如創建一個簡單的留言闆,或者一個用戶注冊頁麵。這種完成一個具體任務的學習過程,讓我非常有成就感,也更能體會到 PHP 的實用價值。而且,書中還提供瞭大量的練習題,這些練習題的難度循序漸進,能夠有效地鞏固我所學的知識。我甚至覺得,如果認真完成書中的所有練習,就已經能夠勝任一些基礎的 PHP 開發工作瞭。總的來說,這本書的實踐性非常強,學習過程既充實又有趣。
評分這本書簡直是為我量身定做的!我之前一直對編程感覺望而卻步,覺得代碼就像天書一樣,但這本書用一種非常平易近人的方式,一步步地引導我進入瞭 PHP 的世界。作者的講解邏輯清晰,語言生動有趣,就像一個經驗豐富的老師在手把手地教你。從最基礎的變量、數據類型,到控製流程,再到函數的使用,每一步都配有詳細的代碼示例,而且這些示例都非常貼閤實際應用場景,讓我能夠快速理解並動手實踐。最讓我驚喜的是,書中的概念講解不會過於理論化,而是緊密結閤“為什麼”和“怎麼做”,讓我不再是死記硬背,而是真正理解瞭原理。比如,在講到數組的時候,它不光告訴你數組是什麼,還會解釋為什麼需要數組,以及在什麼情況下使用數組會更高效。而且,書中還穿插瞭一些小技巧和注意事項,讓我少走瞭很多彎路。我之前嘗試過一些其他的編程入門教程,但都因為過於枯燥或者內容跳躍而放棄瞭,唯獨這本書,讓我堅持瞭下來,並且從中獲得瞭滿滿的成就感。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有