PHP是一種腳本語言,不同於Java可以獨立編譯運行,PHP是嵌入在html中執行的。這一點有點像JavaScript。當執行一個PHP文件時,服務器會對文件中的php代碼進行解析。但是PHP又和JavaScript不同,JavaScript是作用於客戶端的腳本語言。而PHP是隻作用於服務器的腳本語言。這一點上又比較像jsp,像Java。PHP的工作原理是當客戶端訪問一個PHP文件,服務器對它進行解析。PHP就會更具傳來的數據,計算出應該返回的的html頁面數據。如圖1所示:
令我感到吃驚的是PHP居然是面向對象的編程語言。PHP的基本數據類型也有整型、浮點型、字符串、數組、對象、布爾型。
PHP是一種弱類型的編程語言,類似於JavaScript,它的變量不會鎖定爲一種特殊的格式。
PHP的變量書寫格式是$var,前面得有一個美元符號,後面緊接着的是字母或者下劃線,不能是數字。但是接着就可以用字母、數字、下劃線的任意組合了。PHP是區分大小寫的。
PHP的數組的創建格式是$list = array(1 = > ‘one’, 2 = > ‘two’, 3 = > ‘three’)。也可以直接$list = array(‘one’, ‘two’, ‘three’),但是這樣前面的索引值是從0開始的。所以,PHP的數組是比較靈活的,可以自己設定索引值從1開始。更加靈活的是這個索引值不但可以是數字,還可以是字符串。所以,我個人覺得,PHP的數組其實更像一個Map,裏面存儲的是鍵值對。引用數組值的格式是:$數組名[索引值],例如$list[1]。
PHP中有幾個特殊的變量$_POST,$_GET(必須是大寫)。這兩個變量的作用是當有一個客戶端發來請求時,客戶端發送過來的數據存放在這些變量裏面。這其實是兩個數組。顧名思義,$_POST對應客戶端用post方法發來的數據。$_GET對應客戶端用get方法發來的數據。$_POST和$_GET的使用方法是,$_POST[‘name’],這個name是指html標籤中的name值。得到的是這個name相對應的value值。
簡單測試:
一個html頁面裏面有幾個鏈接,都指向同一個hello.php文件。當點擊一個鏈接後,html會通過get方法將對應的數據傳給指向的php文件。這個php文件再把接收到的value打印出來。
html鏈接代碼:
<ul>
<li><a href="hello.php?name=Michael">Michael</a></li>
<li><a href="hello.php?name=Celia">Celia</a></li>
<li><a href="hello.php?name=Jude">Jude</a></li>
<li><a href="hello.php?name=Sophie">Sophie</a></li>
</ul>
對應的hello.php中部分代碼:
<?php
ini_set('display_errors', 1);//Let me learn from my mistakes!
//error_reporting(E_ALL | E_STRICT);//Show all posible problems!
//打印URL中的value值
//Say "Hello""
$name = $_GET[name];
print "<p>Hello, <span style=\"font-weight:bold\">$name</span></p>";
?>
Html中提交數據經常使用form。PHP對form的操作也是這樣的。form中使用get或者post方法,在php中有對應的$_GET,$_POST數組接受數據。
簡單測試:
一個form
<form action="handle_form.php" method="post">
<p>Name:<select name="title">
<option value = "Mr.">Mr.</option>
<option value = "Mrs.">Mrs.</option>
<option value = "Ms.">Ms.</option>
</select>
<input type="text" name="name" size="20"/>
</p>
<p>Email Address: <input type="text" name="email" size="20"/></p>
<p>
Response: This is...
<input type="radio" name="response" value="excellent"/> excellent
<input type="radio" name="response" value="okey"/>okey
<input type="radio" name="response" value="boring"/>boring
</p>
<p>Comments: <textarea name="comments" rows="3" cols="38"></textarea></p>
<input type="submit" name="submit" value="Send My Feedback"/>
</form>
對應的php代碼
<?php
ini_set('display_errors', 1);//Let me learn from my mistakes!
//This page receives the data from feedback.html.
//It will receive: title, name, email, response, comments, and submit in $_POST.
$title = $_POST['title'];
$name = $_POST['name'];
$response = $_POST['response'];
$comments = $_POST['comments'];
//Print the received data:
print "<p>Thank you, $title $name, for your comments.</p>
<p>You stated that you found this example to be '$response' and added:
<br />$comments</p>";
?>
PHP學習網站: