PHP 在變量定義中不需要(或不支持)明確的類型定義;變量類型是根據使用該變量的上下文所決定的。也就是說,如果把一個 string 值賦給變量$var,$var 就成了一個 string。如果又把一個integer 賦給 $var,那它就成了一個integer。
PHP 的自動類型轉換的一個例子是加法運算符“+”。如果任何一個操作數是float,則所有的操作數都被當成float,結果也是float。否則操作數會被解釋為integer,結果也是integer。注意這并沒有改變這些操作數本身的類型;改變的僅是這些操作數如何被求值以及表達式本身的類型。
~~~
<?php
$foo = "0"; // $foo 是字符串 (ASCII 48)
$foo += 2; // $foo 現在是一個整數 (2)
$foo = $foo + 1.3; // $foo 現在是一個浮點數 (3.3)
$foo = 5 + "10 Little Piggies"; // $foo 是整數 (15)
$foo = 5 + "10 Small Pigs"; // $foo 是整數 (15)
?>
~~~
如果上面兩個例子看上去古怪的話,參見字符串轉換為數值。
如果要強制將一個變量當作某種類型來求值,參見類型強制轉換一節。如果要改變一個變量的類型,參見 settype()。
如果想要測試本節中任何例子的話,可以用 var_dump() 函數。
>Note:
自動轉換為 數組 的行為目前沒有定義。
此外,由于 PHP 支持使用和數組下標同樣的語法訪問字符串下標,以下例子在所有 PHP 版本中都有效:
~~~
<?php
$a = 'car'; // $a is a string
$a[0] = 'b'; // $a is still a string
echo $a; // bar
?>
~~~
請參閱存取和修改字符串中的字符一節以獲取更多信息。
### 類型強制轉換
PHP 中的類型強制轉換和 C 中的非常像:在要轉換的變量之前加上用括號括起來的目標類型。
~~~
<?php
$foo = 10; // $foo is an integer
$bar = (boolean) $foo; // $bar is a boolean
?>
~~~
允許的強制轉換有:
(int), (integer) - 轉換為整形 integer
(bool), (boolean) - 轉換為布爾類型 boolean
(float), (double), (real) - 轉換為浮點型 float
(string) - 轉換為字符串 string
(array) - 轉換為數組 array
(object) - 轉換為對象 object
(unset) - 轉換為 NULL (PHP 5)
(binary) 轉換和 b 前綴轉換支持為 PHP 5.2.1 新增。
注意在括號內允許有空格和制表符,所以下面兩個例子功能相同:
~~~
<?php
$foo = (int) $bar;
$foo = ( int ) $bar;
?>
~~~
將字符串文字和變量轉換為二進制字符串:
~~~
<?php
$binary = (binary)$string;
$binary = b"binary string";
?>
~~~
>Note:
可以將變量放置在雙引號中的方式來代替將變量轉換成字符串:
~~~
<?php
$foo = 10; // $foo 是一個整數
$str = "$foo"; // $str 是一個字符串
$fst = (string) $foo; // $fst 也是一個字符串
// 輸出 "they are the same"
if ($fst === $str) {
echo "they are the same";
}
?>
~~~
有時在類型之間強制轉換時確切地會發生什么可能不是很明顯。更多信息見如下小節:
| 轉換為布爾型 | 轉換為整型 | 轉換為浮點型 |
| --- | --- | --- |
| 轉換為字符串 | 轉換為數組 | 轉換為對象 |
| 轉換為資源 | 轉換為 NULL | 類型比較表 |
- 入門指引
- 簡介
- PHP是什么
- PHP能做什么
- 簡明教程
- 學PHP需要什么
- 我的第一個PHP頁面
- 實用的PHP腳步
- PHP是如何處理表單的
- 在新版本的PHP如何實用舊的PHP代碼
- 下一步需要做什么
- PHP語言參考
- PHP基本語法
- PHP標記
- PHP多進程管理-pcntl_fork
- PHP文件上傳易犯錯誤
- PHP從HTML中分離
- PHP的指令分隔符
- PHP序列化serialize
- PHP類常量
- PHP Traits
- 從 HTML 中分離
- 注釋
- PHP數據類型
- PHP支持的類型簡介
- 布爾類型(Boolean)就是易經知識
- 整型(integer)即整數
- 浮點型(float)
- 字符串(string)
- 數組(Array)
- 對象(object)一定要搞
- 資源類型(resource)
- PHP安裝與環境配置
- 安裝前需要考慮的事項
- Unix系統下安裝PHP
- Unix 系統下安裝 Apache 1.3.x
- Unix 系統下安裝 Apache 2.x
- Unix 系統下安裝 Nginx 1.4.x
- Unix 平臺安裝 Lighttpd 1.4
- Sun Solaris 上的 Sun、iPlanet 和 Netscape 服務器
- CGI 命令行設置
- 針對 HP-UX 平臺的安裝提示
- 在 OpenBSD 系統下的安裝PHP
- Debian GNU/Linux 安裝說明
- 在Mac OS X 系統下安裝PHP
- 使用軟件包
- 使用內置的 PHP
- Windows 系統下的安裝
- 云計算平臺上的安裝
- Microsoft Azure
- 在亞馬遜(Amazon EC2)安裝PHP
- PHP語法參考
- 類型
- NULL
- Callback 回調類型
- 本文檔中使用的偽類型與變量
- 類型轉換的判別
- PHP 類型比較表
- 常量和變量
- 語法基礎
- 預定義變量
- 變量范圍
- 可變變量
- 外部變量
- 常量
- 語法
- 魔術常量
- PHP表達式&運算符
- 賦值運算符
- 位運算符
- 比較運算符
- 錯誤控制運算符
- 執行運算符
- 遞增/遞減運算符
- 邏輯運算符
- 字符串運算符
- 數組運算符
- 類型運算符
- 流程控制
- continue
- switch
- declare
- return
- require
- include
- require_once