首頁 >後端開發 >PHP問題 >php怎麼強轉資料類型

php怎麼強轉資料類型

青灯夜游
青灯夜游原創
2021-11-18 18:03:172947瀏覽

強轉方法:1、在要轉換的變數之前加上用括號括起來的目標類型(「(int)」、「(bool)」、「(float)」等);2、使用型別轉換函數intval()、floatval()、boolval()、strval()、settype()。

php怎麼強轉資料類型

本教學操作環境:windows7系統、PHP7.1版、DELL G3電腦

PHP強制類型轉換

PHP 中的強制型別轉換和其他語言很類似,可以在要轉換的變數之前加上用括號括起來的目標型別(例如$var = (int )3.1415;),也可以使用特定的型別轉換函數(例如intval()floatval()strval() 等)或者settype() 來轉換型別。

使用在變數之前加上用括號括起來的目標類型的方式強制轉換變數類型時,括號中允許使用的變數類型如下所示:

  • (int)(integer):轉換成整數;

  • (bool) (boolean):轉換成布林類型;

  • (float)(double)(real) :轉換成浮點型別;

  • (string):轉換成字串型別;

  • #(array):轉換成陣列型別;

  • #(object):轉換成物件類型。

使用具體的轉換函數intval()floatval()boolval() strval() 等轉換變數的型別時,這些函數的作用如下所示:

  • intval():用於取得變數的整數值;

  • floatval():用於取得變數的浮點值;

  • #boolval():用於取得變數的布林值;

  • strval():用於取得變數的字串值。

【範例】使用以上幾個函數強制轉換變數的型別。

<?php
    $str = &#39;123.456abc&#39;;
    $int = intval($str);
    echo &#39;变量 $int 的类型为:&#39;.gettype($int).&#39;<br>&#39;;
    $float = floatval($str);
    echo &#39;变量 $float 的类型为:&#39;.gettype($float).&#39;<br>&#39;;
    $string = strval($str);
    echo &#39;变量 $string 的类型为:&#39;.gettype($string);
?>

運行結果如下:

变量 $int 的类型为:integer
变量 $float 的类型为:double
变量 $string 的类型为:string

上面介紹的兩種強制類型轉換的方式都不會改變被轉換變數本身的類型,而是透過將轉換得到的新類型的數據賦值給新的變量,原變量的類型和值不變。

如果需要改變變數本身的型別可以使用settype() 函數來完成,函數的語法格式如下:

settype(mixed &$var, string $type)

其中,$var 為要轉換的變數;$type 為要轉換的型別,可以是boolean(bool)integer(int)float(double)stringarrayobjectnull

【範例】使用 settype() 函數強制轉換變數的型別。

<?php
    $str = (string)&#39;123abc&#39;;
    $bool = (bool)true;
    settype($str, &#39;integer&#39;);
    settype($bool, &#39;string&#39;);
    echo &#39;$str 的类型为:&#39;.gettype($str).&#39;<br> $bool 的类型为:&#39;.gettype($bool);
?>

運行結果如下:

$str 的类型为:integer
$bool 的类型为:string

使用強制型別轉換有以下幾點要注意:

  • 整數型轉換為浮點型,由於浮點型的精度範圍遠大於整數,所以轉換後的精度不會改變;

  • #浮點型轉換為整數,將會自動捨棄小數部分,只保留整數部分。如果一個浮點數超過整數數字的有效範圍,其結果將是不確定的;

  • #字串轉換為數字時,是從字串開始到第一個不是數字的字元結束(不符合的內容清空),也就是說如果字串第一個字元不是數字的話,轉換後的結果為0;

  • NULL 值轉為字串,結果為空字元。

推薦學習:《PHP影片教學

以上是php怎麼強轉資料類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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