« 5. 如何指定變數與 PHP 的資料型態有哪些? | (回到Blog入口) | 7. 如何將字串型態轉成數值型態? »

6. 如何做 PHP 的型別轉換?

jollen 發表於 October 27, 2006 1:06 PM

PHP 裡要做強迫轉換變數型態的方法有 2 種:

1. 使用 C 語言的 type casting 語法,例如:

$x = 5; $y = (double) $x; //括弧裡可以有 tab 或空白 (space)

可使用的 cast 型別有:

1. (int),(integer) - 轉換成 integer 型別
2. (bool),(boolean) - 轉換成 boolean 型別
3. (float),(double),(real) - 轉換成 float 型別
4. (string) - 轉換成 string 型別
5. (array) - 轉換成 array 型別
6. (object) - 轉換成 object 型別

type casting 型別轉換範例。範例 1:

<?php $x = "5"; $number = (int)$x; echo $number; //輸出 5 ?>

範例 2:

<?php $x = "foo"; $arr = (array)$x; echo $arr[0]; //輸出 "foo" ?>

範例 3:

<?php $x = "foo"; $obj = (object)$x; echo $obj->scalar; //輸出 "foo" ?>

2. 使用 settype 函數:

int settype(string var, string type);

將 var 變數轉換為 type 型別,可指定的型別參數有:

1. "boolean" (PHP 4.2.0 與之後的版本也可以簡寫成 "bool")
2. "integer" (PHP 4.2.0 與之後的版本也可以簡寫成 "int")
3. "float" (PHP 4.2.0 與之後的版本才支援)
4. "double"
5. "string"
6. "array"
7. "object"
8. "null" (PHP 4.0.8 以後的版本才支援)

轉換成功傳回 true,否則傳回 false。當我們不知道某個變數的值是什麼型別時,也可以利用 gettype() 函數來取得。

在 PHP 裡和 C 語言一樣,非零即為 true,例如 if ($x) 等於 if ($x != 0)。

--jollen

版權聲明

請參閱頁面底部的 CC 授權條款。此外,Jollen's PHP 專欄禁止引用、修改與轉貼,如果您想與朋友分享的話,我們只允許網站連結(hyperlink)的形式。

發表一個評論

(如果你此前從未在此 Blog 上發表過評論,則你的評論必須在 Blog 主人驗證後才能顯示,請你耐心等候。)

| Top | Jollen's Forum |
Jollen's PHP 專欄採用 Attribution-NonCommercial-NoDerivs 2.5 授權條款
Copyright(c) 2001-2007,2010 www.jollen.org