PHP强制类型转换,总结

PHP强制类型转换

PHP 中的强制类型转换和其他语言很类似

  1. 可以在要转换的变量之前加上用括号括起来的目标类型(例如$var = (int)3.1415;)
  2. 也可以使用具体的类型转换函数(例如 intval()、floatval()、strval() 等)或者 settype() 来转换类型。

转换变量的方法

使用在变量之前加上用括号括起来的目标类型的方式强制转换变量类型时,括号中允许使用的变量类型如下所示:
(int)、(integer):转换成整型;
(bool)、(boolean):转换成布尔类型;
(float)、(double)、(real):转换成浮点类型;
(string):转换成字符串类型;
(array):转换成数组类型;
(object):转换成对象类型。

转换函数

使用具体的转换函数 intval()、floatval()、boolval()、strval() 等来转换变量的类型时,这些函数的作用如下所示:
intval():用于获取变量的整数值;
floatval():用于获取变量的浮点值;
boolval():用于获取变量的布尔值;
strval():用于获取变量的字符串值。

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

运行结果:

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

注意

以上两种皆不会改变被装换变量本身的类型,而是通过将转换得到的新类型的数据赋值给新的变量,原变量的类型和值不变。
如果需要改变变量本身的类型可以使用 settype() 函数来完成

settype(mixed &$var, string $type)

其中, v a r 为 要 转 换 的 变 量 ; var 为要转换的变量; vartype 为要转换的类型,可以是 boolean(bool)、integer(int)、float(double)、string、array、object、null。

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

运行结果:

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

其他

  • 整型转化为浮点型,由于浮点型的精度范围远大于整型,所以转化后的精度不会改变;
  • 浮点型转化为整型,将会自动舍弃小数部分,只保留整数部分。如果一个浮点数超过整型数字的有效范围,其结果将是不确定的;
  • 字符串转化为数字时,是从字符串开始到第一个不是数字的字符结束(不符合的内容清空),也就是说如果字符串第一个字符不是数字的话,转换后的结果为0;
  • NULL 值转为字符串,结果为空字符。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值