php基础——数据类型转换
2020-06-29 04:51
501 查看
PHP 在变量定义中不需要(或不支持)明确的类型定义;变量类型是根据使用该变量的上下文所决定的。
自动类型转换
- php基本数据类型精度 bool < int < float
- 在运算时,数据类型会自动向高精度转换
自动转换示例
$str = 'abc'; // str $str = 123; // int $str = array(1,2,3); // array $str = false; // bool // 在运算时,数据类型会自动向高精度转换 $a = 10; $b = true; $num = $a + $b; // int 11 $num = $a + $b + 0.1; // float 11.1
根据上下文的特殊自动转换
- 算数运算符,字符串到数字的自动转换
- 字符串运算符,数字到字符串的自动转换
- 比较运算符,字符串到数字的自动转换
// 字符串到数字的转换,从左到右截取,直到碰到不合法的数字,截取出的部分转成数字 // 算数运算符,根据上下文先将$a转为float,即$a=12.3,然后运算 $a = "12.3hello99"; $a = $a + 3; var_dump($a); // float 15.3 // 字符串运算符,数字到字符串的转换 // 字符串运算符,根据上下文先将$a转为string,然后运算 $a = 123; $a = $a."hello"; var_dump($a); // string '123hello' // == 运算符,字符串到数字的转换 $a = 1; $b = '1xxx'; // == 比较时 类型转换 $b=1 var_dump($a == $b); // boolean true var_dump($a === $b); // boolean false $a = 0; $b = 'xxx'; // == 比较时 类型转换 $b=0 var_dump($a == $b); // boolean true var_dump($a === $b); // boolean false //到布尔型的判断,以下值都被当作假 "" (空字符串) 0 (作为整数的0) 0.0 (作为浮点数的0) "0" (作为字符串的0) NULL FALSE array() (一个空数组)
强制类型转换
方式1:settype — 设置变量的类型
- 直接改变了
$num
本身的数据类型 - 成功时返回
TRUE
, 或者在失败时返回FALSE
//type的值可能为:'bool' 'int ' 'float' 'string' 'array' 'object' 'null' $num = 100; settype($num,'float'); var_dump($num); settype($num,'array'); var_dump($num); settype($num,'object'); var_dump($num); settype($num,'null'); var_dump($num);
方式2: (类型)变量的方式
- 并没有改变
$num
本身的数据类型,只是把返回的结果类型改变了 - 也可以把返回值赋给
$num
,从而改变$num
的数据类型
//()中的值可能为:bool int float string array object unset $num = 100; $a = (string)$num; var_dump($num,$a); // int 100, string '100'
方式3: intval() boolval() 等函数
- 并没有改变
$num
本身的数据类型,只是把返回的结果类型改变了 - 也可以把返回值赋给
$num
,从而改变$num
的数据类型
// intval floatval strval boolval 这几个函数 $num = 100; $a = floatval($num); var_dump($num,$a); // int 100, float 100
小结三种方式的区别及使用
- 第1种会修改变量本身,使其变为新的数据类型
- 第2,3种不会修改变量本身,且第2种支持改变的数据类型很多
- 第1,2种用的比比较多
相关文章推荐
- <我的PHP生涯>-忆-PHP基础2-PHP数据类型与转换
- PHP基础之数据类型10——类型转换的判别
- 一:PHP语言基础_数据类型_转换数据类型
- php基础详解之变量,常量,数据类型,类型转换,运算符,分支与循环
- PHP基础——数据类型之间的相互转换
- PHP开发基础(1):PHP 点运算符(.)与数据类型转换的深入探讨
- PHP数据类型转换
- PHP数据类型转换细节
- PHP数据类型转换
- python基础:string和bytes数据类型之间的转换
- PHP基础(PHP的数据类型)
- PHP中的数据类型转换和类型检测
- 10-10C#基础---数据类型之间的转换
- PHP基础之数据类型3——浮点型(Float)
- JavaScript基础02--数据类型转换和运算符
- [C++基础]C++4个转型操作符——数据类型转换
- PHP数据类型转换(字符转数字,数字转字符)
- 2 Java基础语法(关键字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换)
- PHP中数据类型转换的三种方式
- PHP数据类型转换