萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 網路程式設計 >> PHP 程式設計

PHP 基礎語法與資料類型入門完整指南

PHP 基本語法規則

  • 檔案以 <?php ... ?> 標籤包裹。
  • 可與 HTML 混合編寫。
  • 每行陳述式以分號 ; 結束。
  • 變數以 $ 開頭,區分大小寫($var ≠ $Var)。
  • 變數命名:字母或底線開頭,後接字母、數字、底線。

資料類型總覽

PHP 共有 8 種基本型別(標量 4 種、複合 2 種、特殊 2 種)。

四種標量類型

類型關鍵字說明範例
布林booltrue/falsetrue, false
整數int整數(平台相關範圍)123, -10, 0x1A (十六進位), 0755 (八進位)
浮點數float / double小數、科學記號3.14, 1.2e3, .5
字串string字元序列'hello', "world $var"

兩種複合類型

類型關鍵字說明
陣列array有序對應表(鍵值對)
物件object類別實例

兩種特殊類型

類型關鍵字說明
資源resource外部資源參考(檔案、資料庫連線等)
NULLnull無值、未初始化、已 unset

型別轉換與判斷

強制轉型

<?php
$val = '123';
$int = (int)$val;      // 123
$float = (float)$val;  // 123.0
$bool = (bool)$val;    // true (非空字串)
$arr = (array)$val;    // ['123']
$obj = (object)$val;   // stdClass { scalar => '123' }
$str = (string)123;    // '123'
?>

函式轉型

<?php
settype($val, 'integer'); // 直接修改 $val 型別
?>

型別判斷函式

<?php
is_int($x); is_float($x); is_string($x); is_bool($x);
is_array($x); is_object($x); is_null($x); is_resource($x);
is_numeric($x); // 數字或數字字串
is_scalar($x);  // 標量類型
gettype($x);    // 回傳型別名稱字串
?>

運算子優先順序(高到低)

優先級運算子結合方向
1clone, new無
2[ (陣列存取)右
3++, --, ~, (int), (float), (string), (array), (object), (bool), @右
4instanceof無
5*, /, %左
6+, -, .左
7<<, >>左
8<, <=, >, >=無
9==, !=, ===, !==, <=>無
10&左
11^左
12|左
13&&左
14||左
15?? (null 聯合)左
16? : (三元)右
17=, +=, -=, *=, /=, .=, %=, &=, |=, ^=, <<=, >>=右
18and左
19xor左
20or左

流程控制結構

if / else / elseif

<?php
if ($score >= 90) {
    echo '優等';
} elseif ($score >= 60) {
    echo '及格';
} else {
    echo '不及格';
}
?>

switch

<?php
switch ($grade) {
    case 'A': echo '優'; break;
    case 'B': echo '良'; break;
    case 'C': echo '可'; break;
    default:  echo '其他';
}
?>

迴圈

<?php
// for
for ($i = 0; $i < 10; $i++) { /* ... */ }

// while
while ($row = $stmt->fetch()) { /* ... */ }

// do-while(至少執行一次)
do {
    $input = readInput();
} while ($input !== 'quit');

// foreach(陣列/物件遍歷)
foreach ($arr as $key => &$val) { $val *= 2; } // 參考修改原值

break / continue

  • break:跳出當前迴圈/switch,可 break N 跳出 N 層。
  • continue:跳過本輪剩餘,進入下一輪,可 continue N。

常用陣列函式

函式用途
count()元素個數
is_array()判斷是否陣列
array_keys() / array_values()取得所有鍵/值
in_array()檢查值是否存在
array_push() / array_pop()堆疊操作
array_shift() / array_unshift()隊列操作
explode() / implode()字串分割/合併
array_map() / array_filter() / array_reduce()函數式操作

常見陷阱提醒

  • ⚠️ 浮點數精度:0.1 + 0.7 !== 0.8,金額計算請用 bcmath 或存分為整數。
  • ⚠️ == vs ===:前者型別轉換後比較,後者型別值皆需相同。
  • ⚠️ empty() 視 0, '0', false, null, [], '' 為真。
  • ⚠️ 字串以數字開頭轉 int 會取數字部分,否則為 0。

打好基礎語法與型別觀念,是寫出健壯 PHP 程式的第一步。

copyright © 萬盛學電腦網 all rights reserved