PHP語法特點
感覺PHP在語法上與C++特別相似。只要會C++,PHP基本上不用記什么。
語法上有這些特點:
1. 數據類型
null, bool, string, float, integer, array, object
object 是 new 出來的對象
轉換類型與 C 一樣。
2. PHP里所有的變量名都是以 $ 開頭
在Shell里,只有獲取變量的時候才需要加$符號,在PHP里,所獲取還是設置都要加 $ 符號
$str = "hello"; echo $str;
3. PHP里變量名區分大小寫,函數名不分
$str = "String\n"; $STR = "This is STR\n"; echo $str; ECho $str; echo $STR;
結果輸出:
String
String
This is STR
4. PHP里的注釋除了C++有的 // /**/ 外,還有腳本常用的 #
// 注釋 /* * 注釋 */ # 注釋
5. 定義變量時無需指明類型
這點與 python, lua一樣,這也是大多數據腳本的共性。
6. 數據組是 array
用作數組時:
$arr = array("C++", "C", "Java", "PHP");
用作映射表時:
$map = array("John"=>"M", "Lily"=>"F");
如果不指定鍵值,那么它就是數字 0,1,2,3...為鍵。如果指定了鍵值,那就以指定的鍵值為鍵。
其功能非常類似于Lua的表。Lua的如下:
w = {x=0, y=0, label="console"}
不過 Lua 的有點怪異,非得從1開始計數。
7. 邏輯語句與C++一樣
if .. else if .. else, for, while, continue, break等與C++一樣。只不過,PHP還支持用 : ... endXXX 來代替 { ... }
if ($num == 0) { echo "num = " . $num; }也可以寫成如下
if ($num == 0) : echo "num = " . $num; endif</pre>
有 ++$i 與 $i++,與C++一樣。
8. 字符串用 . 進行連接
這一點跟 Lua 類似,Lua 是用 .. 進行字符串拼接的。
9. 字符串用單引號或雙引號界定
$name = 'Peter'; echo 'My name is $name\n'; echo "My name is $name\n"; echo "===="My name is $name\nMy name is Peter
====在單引號里 $name 與 \n 都沒有被重新計算。而雙引號則會被替代。這點跟shell一樣。
10. 有 === (恒等)與 !== (不恒等)比較。恒等的意思是不僅值相等,類型還一樣
11. 函數的定義
function PrintName($name = "Unknow") { if (is_string($name)) { echo "My name is $name\n"; return TRUE; } return FALSE; } PrintName("Hevake");與 Lua 類似,也可以帶默認值
12. 常量
define("NAME", "hevake_lcj"); # 定義常量 echo constant("name"); # 取常量 if (defined("name")) { # 檢查是否定義了常量 name echo "定義了 name"; }13. 可變變量
<?php $text="My Name"; $a = "text"; echo $$a; echo '<br>'; $b = 'a'; echo $$$b; ?>
$text, $$a, $$$b的結果都是“My Name”。
函數也可以這樣引用:
<?php function come() { echo "I am coming. <br/>"; } function back() { echo "I am back. <br/>"; } $func = "come"; $func(); $func = "back"; $func(); ?>
14. 預定義環境變量
$_SERVER, $_COOKIE, $_SESSION, $_POST, $_GET, $GLOBALS
15. 函數可以以引用傳參
<?php function example(&$m) { $m = $m * 5 + 10; } $m = 1; example($m); echo "<p>在函數外:\$m = $m</p>"; ?>
16. foreach循環
<?php $map = array('john'=>18, 'licy'=>22); foreach ($map as $key=>$value) { echo "$key=>$value, "; } echo '<br/>'; ?>http://my.oschina.net/hevakelcj/blog/326907