PHP变量之数据类型转换

猫斯基  — PHP


强制转换

方法一

在要转换的变量之前加上用括号括起来的目标类型,可实现强制转换。

  • (int), (integer) – 转换成整型
  • (bool), (boolean) – 转换成布尔型
  • (float), (double), (real) – 转换成浮点型
  • (string) – 转换成字符串
  • (array) – 转换成数组
  • (object) – 转换成对象
$a = "hello";
var_dump( (int)$a ); // 0

$a = "5478hello";
var_dump( (int)$a ); // 5478

方法二

用函数进行强制转换

intval() 强制转化成 int 型
floatval() 强制转化成 float 型
strval() 强制转化成 string 型

相关函数

var_dump() 打印数据类型和值
getType() 获取变量的类型
setType() 设置变量的类型

例子

$int = 10;
echo getType( $int ); // Integer
$a = 10.0;
echo getType( $a ); // double

setType( $int, "double" );
echo getType( $int ); // double

$c = (string) $int;
echo getType( $int ); // Integer
echo getType( $c ); // string

echo getType( strval($int) ); // string

自动转换

PHP变量之数据类型转换

小类型自动往大类型转换。

没有数字开头的字符串,转换到int类型时,转为0;

有数字开头的字符串,转换到int类型时,转为开头的数字(只能是开头的数字)。

$a = true;
$b = 21;
$c = $a + $b;
var_dump($c); // 22

$a = "hello";
$b = 100;
$c = $a + $b;
var_dump($c); // 100

$a = "123hello";
$b = 100;
$c = $a + $b;
var_dump($c); // 223

$a = "1aa23hello";
$b = 100;
$c = $a + $b;
var_dump($c); // 101

// 中间有空格
$a = "1 23hello";
$b = 100;
$c = $a + $b;
var_dump($c); // 223

// 科学记数法 1e23 = 456x10^3
$a = "456e3hello";
$b = 100;
$c = $a + $b;
var_dump($c); // 456100

相关函数

is_bool()
is_int() / is_integer() / is_long()
is_float() / is_double / is_real()
is_string()
is_array()
is_object()
| 判断是否是对象
is_resource()
| 判断是否是资源类型
is_null()
is_scalar()
| 判断是否是标量
is_numberic()
| 判断是否是任何类型的数字或数字字符串  判断字符串中是否有数字
is_caliable()
| 判断是否是有效的函数名

阅读量:0 2020-09-23 13:16

返回顶部