PHP-php 强制转换和转换函数功能上或应用上有什么区别

小组事务管理 小组事务管理 主题:974 回复:1955

PHP-php 强制转换和转换函数功能上或应用上有什么区别

甜柠檬 发布于 2017-01-29 字数 392 浏览 1144 回复 2

php对类型转换有两种方式,一种是强制转换比如:(int)$a;一种是转换函数intval($a)。对我来说,我用的时候很少考虑到这两者的区别,只是随个性常用intval()进行转换,这两种转换有什么区别或适用什么场合吗?看下面代码已没什么区别:

<?php
$a=1.01;
$b=1.99;
var_dump($a,$b);
$a=(int)$a;
$b=intval($b);
var_dump($a,$b);
?>

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

想挽留 2017-10-22 2 楼

其实php 类型转换有两种,分别是 自动类型转换,强制类型转换。

一般 intval(),strval(),floatval() 算是通过返回值来确定变量类型。

而且函数还可以做更多的事情比如intval(),默认是返回十进制整数,但是可以指定$base,通过使用特定的进制转换,返回变量 var 的 integer 数值。

其实还有个好用的函数:settype();

这种转换其实和强制类型转换结果一样,没什么区别!很多phper都是从其他语言转过来的,可能习惯了这种强制类型的转换,大家用法的习惯不同。

虐人心 2017-08-19 1 楼

手册里:
int intval ( mixed $var [, int $base ] )
通过使用特定的进制转换(默认是十进制),返回变量 var 的 integer 数值。

(int) $a 不能使用进制转换。

我理解的区别就这点了。待高人补充