php怎麼將值強制轉為數值型別

2023-01-31 06:02:28

強制轉換方法:1、在資料之前加上用括號括起來的目標型別「(int)」或「(float)」,可以將值轉為整數型別或浮點型,例如「(int)$str」、「(float)$str」;2、使用intval()函數,可以將值轉為整數型別,語法「intval(值)」;3、3、使用floatval()函數,可以將值轉為浮點型,語法「floatval(值)」;4、使用settype()函數。

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

php提供了兩種數值型別:

  • integer (整型)

  • float (浮點型, 也稱作 double)

討論將值強制轉為數值型別,就是討論將值轉為整型或浮點型。下面聊聊轉換方法。

情況1:將值強制轉為整數型別(3種方法)

方法1:在資料之前加上用括號括起來的目標型別「(int)」或「(integer)」

  • (int)、(integer):轉換成整型;

<?php
header("Content-type:text/html;charset=utf-8"); 
$str = '123.456abc';
echo '變數 $str 的型別為:'.gettype($str).'<br>';
$int1 = (int)$str;
echo '變數 $int1 的型別為:'.gettype($int1).'<br>';
$int2 = (integer)$str;
echo '變數 $int2 的型別為:'.gettype($int2).'<br>';
?>
登入後複製

1.png

方法2:使用intval()函數

intval() 函數用於獲取變數的整數值。

intval() 函數通過使用指定的進位制 base 轉換(預設是十進位制),返回變數 var 的 integer 數值。 intval() 不能用於 object,否則會產生 E_NOTICE 錯誤並返回 1。

語法:

int intval ( mixed $var [, int $base = 10 ] )
登入後複製

引數說明:

  • $var:要轉換成 integer 的數量值。

  • $base:轉化所使用的進位制。

如果 base 是 0,通過檢測 var 的格式來決定使用的進位制:

  • 如果字串包括了 "0x" (或 "0X") 的字首,使用 16 進位制 (hex);否則,

  • 如果字串以 "0" 開始,使用 8 進位制(octal);否則,

  • 將使用 10 進位制 (decimal)。

返回值:成功時返回 var 的 integer 值,失敗時返回 0。 空的 array 返回 0,非空的 array 返回 1。

範例:將值轉為int型

<?php 
header("Content-type:text/html;charset=utf-8");  
$str1="123d";   
$str2=intval($str1); 
echo "字串型轉為int型:";
var_dump($str1); 
var_dump($str2); 
?>
登入後複製

2.png

方法3:使用settype()函數

settype()函數:用於設定變數的型別。

其可以設定的型別為:

  • "boolean" (或為"bool",從 PHP 4.2.0 起)

  • "integer" (或為"int",從 PHP 4.2.0 起)

  • "float" (只在 PHP 4.2.0 之後可以使用,對於舊版本中使用的"double"現已停用)

  • "string"

  • "array"

  • "object"

  • "null" (從 PHP 4.2.0 起)

注:settype() 函數會改變變數本身的型別。

範例:將浮點型轉為int型

<?php
header("Content-type:text/html;charset=utf-8");
$str="52.36";
echo '原 $str:<br>';
var_dump($str); 

settype($str, 'integer');
echo '<br>現 $str:<br>';
var_dump($str); 
?>
登入後複製

3.png

情況1:將值強制轉為浮點數型別(3種方法)

類別第一種情況,將值強制轉為浮點數型別同樣有3種常用方法。

方法1:在資料之前加上用括號括起來的目標型別「(float)」、「(double)」或「(real)」

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

<?php
header("Content-type:text/html;charset=utf-8"); 
$str = '123.456abc';
var_dump($str);
$float1 = (float)$str;
var_dump($float1);
$float2 = (double)$str;
var_dump($float2);
$float3 = (real)$str;
var_dump($float3);
?>
登入後複製

4.png

方法2:使用floatval()函數

floatval()函數是專門將將其他型別轉換為浮點型別的函數,它可以獲取變數的浮點值。

注:floatval 不能用於陣列或物件。

<?php
header('content-type:text/html;charset=utf-8');   
$var = '122.34343runoob';
echo "原資料型別:";
var_dump($var);
$float= floatval($var);
echo "修改後的型別:";
var_dump($float);
?>
登入後複製

5.png

<?php
header('content-type:text/html;charset=utf-8');   
$var = TRUE;
echo "原資料型別:";
var_dump($var);
$float= floatval($var);
echo "修改後的型別:";
var_dump($float);
?>
登入後複製

5-2.png

方法3:使用settype()函數

settype()函數可以將值轉為指定資料型別(由第二個引數控制)。

只需要將該函數的第二個引數設定為「float」即可將資料轉為浮點數。

注:該函數會修改原變數;如果設定成功時返回 TRUE, 失敗時返回 FALSE。

<?php
header('content-type:text/html;charset=utf-8');   
$foo = "5bar"; // string
$bar = true;   // boolean
echo "原資料型別:";
var_dump($foo);
var_dump($bar);
settype($foo, "float");
settype($bar, "float");
echo "修改後的型別:";
var_dump($foo);
var_dump($bar);
?>
登入後複製

6.png

推薦學習:《》

以上就是php怎麼將值強制轉為數值型別的詳細內容,更多請關注TW511.COM其它相關文章!