PHP語法特點

jopen 10年前發布 | 22K 次閱讀 PHP 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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!