首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 語法入門指南(一):變數、資料類型、運算子與變數變數

     編輯:PHP 綜合知識

前言

PHP 語法深受 C 語言影響,同時融合 Perl 的彈性,形成獨特的「易上手、高彈性」特質。本文為初學者整理 PHP 核心語法基石:八大資料類型、字串雙單引號差異、陣列彈性、物件導向雛形、完整運算子表,以及 PHP 獨有的「變數變數」機制。

一、資料類型總覽

PHP 為弱型別語言,**變數無需宣告類型,賦值時自動推斷**。共八大類型:

分類類型說明
純量Integer (int)整數,32 位元有號(-2,147,483,648 ~ 2,147,483,647),超出自動轉 Float
Float (double)雙精度浮點數,約 1.7E-308 ~ 1.7E+308
String字串,無長度上限(受記憶體限制)
Boolean (bool)布林值 `true`/`false`
複合Array有序映射(鍵值對),鍵可為整數或字串,值可為任意類型
Object物件實例
特殊Resource外部資源控制代碼(如資料庫連線、檔案指標)
NULL無值,變數未賦值、被 `unset()` 或指派 `null`

二、字串:雙引號 vs 單引號

差異在於 **變數解析** 與 **跳脫字元**:

<?php
$a = 'abc';
$b = "abc$a";  // 雙引號:解析變數 → "abcabc"
$c = 'abc$a';  // 單引號:字面字串 → "abc\$a"
$d = "\"cde\""; // 雙引號內跳脫雙引號 → "\"cde\""
$e = '"cde"';   // 單引號內雙引號無需跳脫 → "\"cde\""
?>
效能提示:單引號不解析變數,解析速度略快。大量字串拼接建議用單引號或 Heredoc/Nowdoc 語法。

三、陣列:極致彈性的有序映射

PHP 陣列同時具備「列表」與「字典」特性,**單一陣列可混合不同類型值**,索引可為整數或字串:

<?php
$names[] = 100;           // 整數索引 0
$names[] = 200;           // 整數索引 1
$names[] = "hi";          // 整數索引 2
$names[] = 98.5;          // 浮點數
$names[] = 1.7E+23;       科學記號
$names['key'] = 'value';  // 字串索引

// 遍歷
foreach ($names as $k => $v) {
    echo "$k => $v\n";
}
?>

常用函數:`count()`、`array_push()`/`[]`、`array_merge()`、`array_key_exists()`、`in_array()`。

四、物件導向雛形

早期 PHP 4/5 物件模型較簡單,核心概念:

  • Class:定義屬性與方法的藍圖
  • Method:類別內的函數
  • Attribute/Property:類別內的變數
  • Extends:單一繼承
<?php
class Person {
    public $name;
    public function sayHi() { echo "Hi, I'm $this->name"; }
}
$p = new Person();
$p->name = 'Alice';
$p->sayHi(); // Hi, I'm Alice
?>

五、運算子完整對照表

除標準算術、比較、邏輯、位元運算子外,PHP 獨有 **字串串接運算子 `.`** 及 **複合指派運算子 `.=`** :

運算子名稱範例備註
.字串串接$a . $bPHP 獨有,C 語言無
.=串接指派$a .= 'tail'等同 $a = $a . 'tail'
??Null 合併$a ?? 'def'PHP 7+,$a 存在且非 null 回 $a,否則回 'def'
??=Null 合併指派$a ??= 'def'PHP 7.4+
?:Elvis 運算子$a ?: 'def'$a 為真回 $a,否則回 'def'
=>陣列鍵值對['k' => 'v']`foreach`、`array()` 語法
->物件成員存取$obj->prop
::靜態成員/常數Class::CONST

六、PHP 獨門絕技:變數變數

在變數名前加 `$`,將該變數的**值當作新變數名**;這在動態表單處理、設定檔解析、模板引擎中極實用。

<?php
$a = 'go';
$$a = 'here';  // 等同 $go = 'here';
echo $a;   // go
echo $$a;  // here (解析 $a 為 'go',再取 $go)
echo $go;  // here
?>

實務範例:動態建立變數

<?php
$fields = ['title', 'author', 'date'];
foreach ($fields as $f) {
    $$f = $_POST[$f] ?? ''; // 建立 $title, $author, $date
}
?>
警示:濫用變數變數會導致程式碼難以靜態分析、除錯困難。現代框架多改用陣列或物件封裝(如 `$data['title']`、`$dto->title`)。

結語

掌握上述基礎語法,即可閱讀、撰寫大多數 PHP 程式碼。下一篇將深入控制結構、函數、檔案處理、錯誤處理與常見安全實務。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved