首頁  >  文章  >  後端開發  >  php類型轉換的判別

php類型轉換的判別

伊谢尔伦
伊谢尔伦原創
2016-11-24 09:06:311447瀏覽

PHP 在變數定義中不需要(或不支援)明確的類型定義;變數類型是根據使用該變數的上下文所決定的。也就是說,如果把字串值賦給變數 $var,$var 就成了字串。如果又把一個整數值賦給 $var,那它就成了一個整數。

PHP 的自動型別轉換的一個例子是加法運算子「+」。如果任何一個操作數是浮點數,則所有的操作數都被當成浮點數,結果也是浮點數。否則操作數會被解釋為整數,結果也是整數。注意這並沒有改變這些運算元本身的型別;改變的只是這些運算元如何被求值以及表達式本身的型別。

<?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)
?>

如果想要測試本節中任何例子的話,可以用 var_dump() 函數。

Note:

自動轉換為 陣列 的行為目前沒有定義。

此外,由於PHP 支援使用和陣列下標相同的語法存取字串下標,以下範例在所有PHP 版本中都有效:

$a    = 'car'; //$a is string
$a[0] = 'b';   // $a is still a string
echo $a;       // :在要轉換的變數之前加上用括號括起來的目標類型。

<?php
$foo = 10;   // $foo is an integer
$bar = (boolean) $foo;   // $bar is a boolean
?>

允許的強制轉換有:

(int), (integer) - 轉換為整形 integer

(bool), (boolean) - 轉換為布林類型 boolean

(float), (realuble), (real ) - 轉換為浮點型 float

(string) - 轉換為字串 string

(array) - 轉換為陣列 array

(object) - 轉換為物件5)

(binary) 轉換和b 前綴轉換支援為PHP 5.2.1 新增。

注意在括號內允許有空格和製表符,所以下面兩個例子功能相同:

$foo = (int) $bar;$foo = ( int ) $bar;

$foo = ( int ) $bar;

>

將字串文字和變數轉換為二元字串:


$binary = (binary)$string;
$binary = b"binary string";

?>

$binary = b"binary string";變數放置在雙引號中的方式來代替將變數轉換成字串:

<?php
$foo = 10;            // $foo 是一个整数
$str = "$foo";        // $str 是一个字符串
$fst = (string) $foo; // $fst 也是一个字符串// 输出 "they are the same"
if ($fst === $str) {
echo "they are the same";
}
?>




有時在類型之間強制轉換時確切地會發生什麼可能不是很明顯。更多資訊請見如下:

轉換為布林型

轉換為整數

轉換為浮點型

轉換為字串

轉換為陣列

轉換為物件轉換為字串

轉換為陣列

NULL

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn