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

PHP 基礎入門完全指南:資料型別、變數與運算子詳解

     編輯:PHP 相關知識

PHP 資料型別總覽

PHP 是動態型別語言,變數型別由賦值決定,執行期可自動轉換。共分為三大類八種型別:

四種純量型別

  • integer:整數(如 123, -10, 0x1A)
  • float(又稱 double):浮點數(如 3.14, 1.2e3)
  • string:字串(單引號、雙引號、Heredoc、Nowdoc)
  • boolean:布林值(true/false)

兩種複合型別

  • array:陣列(有序映射,支援數字/字串鍵)
  • object:物件(類別實例)

兩種特殊型別

  • resource:資源(如資料庫連線、檔案控制代碼)
  • NULL:空值(未賦值、unset()、指派 null)

型別檢測與判斷

gettype() 取得型別名稱

<?php
$varBool = true;
$varStr  = "foo";
$varInt  = 12;

echo gettype($varBool); // boolean
echo gettype($varStr);  // string
echo gettype($varInt);  // integer

// 注意:float 會回傳 "double"
echo gettype(1.23);     // double
?>

is_* 系列函數(建議用於邏輯判斷)

<?php
$var = 12;
if (is_int($var)) {
    $var += 4;
}
echo $var; // 16

// 常用:is_bool, is_int, is_float, is_string, is_array, is_object, is_null, is_resource, is_numeric
?>

var_dump() 同時檢視值與型別

<?php
$arr = [1, 'a' => 2];
var_dump($arr);
// 輸出:array(2) { [0]=> int(1) ["a"]=> int(2) }
?>

變數與常數

  • 變數以 $ 開頭,區分大小寫($var ≠ $Var)
  • 常數用 define() 定義,慣例全大寫,無 $ 符號,僅能儲存純量值
  • 預先定義常數:__LINE__, __FILE__, PHP_VERSION, PHP_OS 等

型別轉換與轉型

自動轉換(Type Juggling)

<?php
$foo = "0";      // string
$foo++;          // "1" (string)
$foo += 1;       // 2   (int)
$foo = $foo + 1.3; // 3.3 (float)
$foo = 5 + "10 Little Piggies"; // 15 (int) - 字串開頭數字參與運算
$foo = 5 + "10 Small Pigs";     // 15 (int)
?>

強制轉型

<?php
$foo = 10;
$bar = (double) $foo;   // float
$arr = (array) $foo;    // array(0 => 10)
$obj = (object) $foo;   // object(stdClass)#1 { ["scalar"]=> int(10) }

// 等價寫法
$foo = (int) $bar;
$foo = ( int ) $bar; // 允許空白
?>

settype() 永久改變變數型別

<?php
$val = "123";
settype($val, "integer");
var_dump($val); // int(123)
?>

字串轉數字規則

  • 包含 .、e、E → 視為 float
  • 否則視為 int
  • 從字串開頭解析數字,非數字開頭為 0
<?php
1 + "10.5"        // 11.5 (float)
1 + "-1.3e3"      // -1299 (float)
1 + "bob-1.3e3"   // 1 (int) - 非數字開頭
1 + "10 Pigs"     // 11 (int)
?>

運算子完整速查表

算術運算子

符號名稱範例結果
+加法$x=2; $x+24
-減法5-$x3
*乘法$x*520
/除法15/53
%取模5%21
++遞增$x=5; $x++$x=6
--遞減$x=5; $x--$x=4

指派運算子

符號等同於
=$x=$y
+=$x=$x+$y
-=$x=$x-$y
*=$x=$x*$y
/=$x=$x/$y
%=$x=$x%$y
.=$x=$x.$y

比較運算子

符號名稱範例結果
==等值5==8false
===全等(值+型別)5==="5"false
!=不等值5!=8true
!==不全等5!=="5"true
>大於5>8false
<小於5<8true
>=大於等於5>=8false
<=小於等於5<=8true

邏輯運算子

符號名稱範例結果
&&AND$x=6;$y=3; ($x<10 && $y>1)true
||OR$x=6;$y=3; ($x==5 || $y==5)false
!NOT$x=6;$y=3; !($x==$y)true
xorXORtrue xor falsetrue

其他重要運算子

  • 字串串接:.(點號),.= 指派串接
  • 三元運算子:(expr1) ? expr2 : expr3,複雜條件建議加括號:($x >= 0) ? $x : -$x
  • 錯誤抑制:@ 前綴(慎用)
  • 執行運算子:反引號 `cmd` 等同 shell_exec()
  • 陣列運算子:+ 聯合、== === != !==
  • 型別運算子:instanceof

常見陷阱與最佳實踐

  1. === 優於 ==:避免自動型別轉換導致邏輯錯誤(如 "0" == false 為 true)
  2. 善用 is_* 函數:比 gettype() 更語意化、效能更好
  3. 字串轉數字:明確使用 (int)、(float) 或 intval()、floatval()
  4. 常數命名:全大寫 + 底線分隔(MAX_SIZE)
  5. 資源型別:不可直接操作,需透過對應函數傳遞

熟練掌握型別系統與運算子,是寫出健壯 PHP 程式的基石。

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