| 風格 | 範例 | 備註 |
| 標準 | <?php ... ?> | 最通用、建議使用 |
| 短標記 | <? ... ?> | 需 short_open_tag=On,XML 混用時衝突 |
| Script | <script language="php">...</script> | HTML 編輯器友善 |
| ASP 風格 | <% ... %> | 需 asp_tags=On,已棄用 |
語句以分號 ; 結束;標記結束隱含語句結束。
2.2 註解
// 單行註解 (C++ 風格)
# 單行註解 (Unix Shell 風格)
/* 多行註解 (C 風格) */
2.3 資料類型
- 標量:Integer(整數)、Float/Double(浮點數)、String(字串)、Boolean(布林)。
- 複合:Array(陣列/雜湊)、Object(物件)。
- 特殊:Resource(資源)、NULL。
型別自動推斷,可用 settype()、(int)$var 強制轉換。
數值字面值
$a = 1234; // 十進位
$a = -123; // 負數
$a = 0123; // 八進位 (83)
$a = 0x12; // 十六進位 (18)
$a = 1.234; // 浮點數
$a = 1.2e3; // 科學記號 (1200)
字串定義與差異
$s1 = 'Hello'; // 單引號:字面值,不解析變數/跳脫字元(除 \' \\)
$s2 = "World"; // 雙引號:解析變數、跳脫字元 (\n, \t, \\, \$, \")
$full1 = "$s1 $s2"; // "Hello World"
$full2 = '$s1 $s2'; // "$s1 $s2"
陣列與關聯陣列
$a[0] = "first"; $a[1] = "second"; $a[] = "third"; // 索引陣列
$phone = array("sbabu" => "5348", "keith" => "4829"); // 關聯陣列
$phone["dean"] = "5397"; // 新增
$phone["carole"] = "4522"; // 修改
echo $phone[0]; // "5348" (關聯陣列也可用數字索引存取)
物件實例化
class Foo {
function doFoo() { echo "Doing foo."; }
}
$bar = new Foo;
$bar->doFoo();
2.4 變數與常數
- 變數以
$ 開頭,區分大小寫,預設區域範圍。
global $var:在函數內引用全域變數。
static $var:函數內靜態變數,跨呼叫保持值。
$$var:變數變數(動態變數名)。
- 預定義超全域陣列:
$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIE, $_FILES, $_ENV, $_REQUEST, $_SESSION。
- 常數:
define("CONST_NAME", "value"),全域可用,不可變更。
2.5 運算子
| 類別 | 運算子 | 說明 |
| 算術/字串 | + - * / % | 加減乘除取模 |
| . | 字串串接 |
| 邏輯 | && / and | 邏輯 AND |
| || / or | 邏輯 OR |
| xor | 邏輯 XOR |
| ! | 邏輯 NOT |
| 比較 | == != < <= > >= | 相等、不等、大小比較 |
| === !== | 全等/不全等(含型別) |
| ?: | 三元運算子 $a ? $b : $c |
| 位元 | & | ^ ~ << >> | AND、OR、XOR、NOT、左移、右移 |
優先順序同 C/Java,括號可改變結合順序。
2.6 流程控制結構
// if-elseif-else
if (expr1) { ... }
elseif (expr2) { ... }
else { ... }
// 替代語法(適合模板混合 HTML)
if (expr1): ... elseif (expr2): ... else: ... endif;
// while / do-while / for
while (expr) { ... }
do { ... } while (expr);
for (expr1; expr2; expr3) { ... }
while (expr): ... endwhile;
// switch
switch ($i) {
case 0: ... break;
case 1: ... break;
default: ... break;
}
// break / continue
break; // 跳出當前迴圈/switch
continue; // 跳過本次迴圈剩餘,進入下一次
// require / include
require 'file.php'; // 編譯期替換,失敗致命錯誤
include 'file.php'; // 執行期載入,失敗警告繼續
2.7 函數定義
function myFunc($param1, $param2 = 'default') {
// 函數體可包含任意 PHP 代碼,含巢狀函數/類別定義
return $retval; // 可回傳任意型別
}
// 呼叫
$result = myFunc("arg1", "arg2");
- 函數必須在呼叫前定義(除非在類別方法中)。
- 支援遞迴、參考傳遞
&$var、可變參數 func_get_args()。
2.8 類別基礎
class Employee {
var $empno; // 屬性 (PHP 4 風格,PHP 5+ 建議用 public/protected/private)
var $empnm;
function addEmployee($num, $name) {
$this->empno = $num;
$this->empnm = $name;
}
function show() {
echo "$this->empno, $this->empnm";
}
function changeName($name) {
$this->empnm = $name;
}
}
$emp = new Employee;
$emp->addEmployee(10, "sbabu");
$emp->changeName("babu");
$emp->show(); // 輸出: 10, babu
PHP 5 引入建構子 __construct()、解構子 __destruct()、靜態成員、介面、抽象類別、Traits 等完整 OOP 機制。
掌握以上語法核心,即可開始撰寫功能完整的 PHP 程式,並為深入框架、擴充套件開發打下基礎。
- 上一篇文章: PHP 簡介:歷史、優勢、競爭對手與適用場景
- 下一篇文章: PHP 4 實現 HTTP 壓縮加速網頁傳輸(重複標題優化版)
Copyright ©
程式碼之家 All Rights Reserved