PHP核心概念速覽
<?php
和 ?>
標記PHP代碼塊的起始與結束,服務器解析此區域的代碼並將其轉換為HTML。 初探PHP:編寫您的第一個PHP腳本
搭建好虛擬服務器後,讓我們開始您的第一個PHP腳本之旅。 PHP作為服務器端語言,可能與您熟悉的客戶端語言(如HTML、CSS、JavaScript)有所不同。
服務器端語言類似於JavaScript,允許您將小程序(腳本)嵌入網頁的HTML代碼中。執行這些程序後,您可以比僅使用HTML獲得對瀏覽器窗口中顯示內容的更大控制權。 JavaScript與PHP的關鍵區別在於執行這些嵌入式程序的網頁加載階段。
客戶端語言(如JavaScript)在從Web服務器下載網頁(包括嵌入式程序)後由Web瀏覽器讀取和執行。相反,服務器端語言(如PHP)由Web 服務器 在將網頁發送到瀏覽器之前運行。客戶端語言讓您控制頁面在瀏覽器顯示後的行為方式,而服務器端語言則允許您在頁面發送到瀏覽器之前動態生成自定義頁面。
Web服務器執行嵌入在網頁中的PHP代碼後,結果將替換頁面中的PHP代碼。瀏覽器在接收頁面時看到的只是標準HTML代碼,因此被稱為“服務器端語言”。讓我們來看一個簡單的PHP示例,該示例生成一個1到10之間的隨機數,然後將其顯示在屏幕上:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>随机数</title> </head> <body> <p>生成1到10之间的随机数:</p> <?php echo rand(1, 10); ?> </body> </html>
大部分代碼是純HTML。只有<?php
和 ?>
之間的行是PHP代碼。 <?php
標記嵌入式PHP腳本的開始,?>
標記其結束。 Web服務器被要求解釋這兩個分隔符之間的所有內容,並在將其發送到請求瀏覽器的網頁之前將其轉換為常規HTML代碼。如果您在瀏覽器中右鍵單擊並選擇“查看源代碼”(文本可能因您使用的瀏覽器而異),您可以看到瀏覽器顯示以下內容:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>随机数</title> </head> <body> <p>生成1到10之间的随机数:</p> <?php echo rand(1, 10); ?> </body> </html>
請注意,所有PHP代碼的痕跡都消失了。取而代之的是腳本的輸出,它看起來就像標準HTML。此示例演示了服務器端腳本的幾個優點……
基本語法和語句
如果您了解JavaScript、C、C 、C#、Objective-C、Java、Perl或任何其他C派生語言,那麼PHP語法將非常熟悉。但如果您不熟悉這些語言,或者您是編程新手,也無需擔心。
PHP腳本由一系列命令或語句組成。每個語句都是一條指令,Web服務器必須在繼續執行下一條指令之前遵循該指令。與上述語言中的語句一樣,PHP語句始終以分號(;)結尾。
這是一個典型的PHP語句:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>随机数</title> </head> <body> <p>生成1到10之间的随机数:</p> 7 </body> </html>
這是一個echo語句,用於生成內容(通常是HTML代碼)以發送到瀏覽器。 echo語句只是獲取給定的文本並將其插入到包含它的PHP腳本位置的頁面HTML代碼中。
在這種情況下,我們提供了一個要輸出的文本字符串:這是一個測試! 。請注意,文本字符串包含HTML標記(<code><strong>
和 <code></strong>
),這是完全可以接受的。
因此,如果我們將此語句放入完整的網頁中,則生成的代碼如下:
echo '这是一个<strong>测试</strong>!';
如果您將此文件放在Web服務器上,然後使用Web瀏覽器請求它,您的瀏覽器將接收此HTML代碼:
测试页面 <?php echo '这是一个<strong>测试</strong>!'; ?>
我們之前看到的random.php示例包含一個稍微複雜的echo語句:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>随机数</title> </head> <body> <p>生成1到10之间的随机数:</p> <?php echo rand(1, 10); ?> </body> </html>
您會注意到,在第一個示例中,PHP被賦予一些直接打印的文本,在第二個示例中,PHP被賦予一條要遵循的指令。 PHP嘗試讀取引號之外存在的任何內容作為它必須遵循的指令。引號內的任何內容都被視為字符串,這意味著PHP根本不會處理它,而只是將其傳遞給您調用的命令。因此,以下代碼將字符串“這是一個測試!”直接傳遞給echo命令:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>随机数</title> </head> <body> <p>生成1到10之间的随机数:</p> 7 </body> </html>
字符串使用起始引號和結束引號來表示。 PHP將看到第一個'
作為字符串的開始,並找到下一個'
並將其用作字符串的結尾。
相反,以下代碼將首先運行內置函數rand以生成隨機數,然後將結果傳遞給echo命令:
echo '这是一个<strong>测试</strong>!';
您可以將內置函數視為PHP無需您詳細說明即可執行的任務。 PHP有許多內置函數,可讓您執行從發送電子郵件到使用各種類型的數據庫中存儲的信息的所有操作。
PHP不會嘗試理解字符串。它們可以包含任何字符,以任何順序排列。但是代碼——本質上是一系列指令——必須遵循嚴格的結構才能讓計算機理解它。
當您在PHP中調用函數——即要求它執行其工作時——據說您正在調用該函數。大多數函數在被調用時會返回值;然後PHP的行為就像您實際上只是在代碼中鍵入了該返回值一樣。在echo 'rand(1, 10)';
示例中,我們的echo語句包含對rand函數的調用,該函數將隨機數作為文本字符串返回。然後,echo語句輸出函數調用返回的值。
PHP中的每個函數都可以有一個或多個參數,這些參數允許您使函數以略微不同的方式運行。 rand函數採用兩個參數:最小隨機數和最大隨機數。通過更改傳遞給函數的值,您可以更改其工作方式。例如,如果您想要一個1到50之間的隨機數,您可以使用以下代碼:
测试页面 <?php echo '这是一个<strong>测试</strong>!'; ?>
您可能想知道為什麼我們需要用括號((1, 50))括起參數。括號有兩個作用。首先,它們表示rand是一個您想要調用的函數。其次,它們標記參數列表的開始和結束——您希望提供的PHP語句——以便告訴函數您希望它做什麼。對於rand函數,您需要提供最小值和最大值。這些值用逗號分隔。
稍後,我們將查看採用不同類型參數的函數。我們還將考慮根本不採用任何參數的函數。即使它們之間沒有任何內容,這些函數仍然需要括號。
(以下為FAQ部分,由於篇幅限制,我將只保留問題和簡短的回答概要。完整的FAQ回答請參考原文。)
PHP代碼常見問題解答 (FAQ)
PHP分隔符的意義是什麼? <?php
和 ?>
用於標記PHP代碼塊的開始和結束,服務器據此解析PHP代碼。
如何編寫我的第一個PHP程序? 創建.php
文件,在<?php ?>
內編寫PHP代碼,例如echo "Hello, World!";
。
PHP在Web開發中的作用是什麼? PHP用於創建動態交互式網頁,處理數據庫、用戶會話、表單等。
PHP如何與HTML交互? PHP代碼嵌入HTML的<?php ?>
中,服務器處理後將結果輸出為HTML。
PHP代碼初學者常犯的錯誤有哪些? 忘記關閉字符串或括號,分號使用不當,函數語法錯誤等。
如何調試PHP代碼? 使用echo
或print
輸出變量值,或使用Xdebug等調試工具。
如何保護PHP代碼安全? 驗證和清理用戶輸入,使用安全哈希算法存儲密碼,更新PHP版本,使用HTTPS連接等。
PHP可以與其他編程語言一起使用嗎? 可以,例如與HTML、CSS、JavaScript和SQL數據庫。
如何提高PHP代碼的性能? 使用高效算法和數據結構,最小化數據庫查詢,使用緩存技術等。
有哪些學習PHP的資源? PHP官方網站(php.net),在線課程,書籍和教程等。
以上是您的第一個PHP代碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!