intval()和(int)转换使用与区别

<?php 
echo "<br/>数值强制转换:"; 
$string="2a"; 
$string1=intval($string); 
echo '$string1的值:'.$string1.'$string2的值:';//单引号不会输出变量,将原样输出 
$string2=(int)($string); 
echo $string2 
?>

手册上查不到。 
这也是手册上说的:引用: 
int intval ( mixed $var [, int $base ] ) 
通过使用特定的进制转换(默认是十进制),返回变量 var 的 integer 数值。 如果只有这点区别的话,那么我喜欢用(int)处理10进制的情况是不错的选择吧?
没啥区别,一般用(int),另外还有 float, string, array 等 

intval()而言,如果参数是字符串,则返回字符串中第一个不是数字的字符之前的数字串所代表的整数值。如果字符串第一个是‘-',则从第二个开始算起。 

如果参数是符点数,则返回他取整之后的值。 

当然intval()返回的值在一个4字节所能表示的范围之内(-2147483648~2147483647),对于超过这个范围的值将用边界值代替。 

例:intval("A")=0; intval(12.3223)=12; intval("1123Asdfka3243")=1123; 
int(); 
例: 
$a=0.13; 
$b=(int)$a; //$b=0; 

$a=0.99; 
$b=(int)$a; //$b=0; 

$a=1.01; 
$b=(int)$a; //$b=1; 

$a=1.99; 
$b=(int)$a; //$b=1; 

PHP字符串转换为int 

有时,重要的是有一个int格式的变量的值。 eaxmple,如果你的访问者填写表单,随着年龄的领域,这应该是一个int。然而,在$ _POST数组,你把它作为一个字符串。 
转换为int的PHP字符串是很容易的。我们需要使用之前,你的变量类型casting.So你需要使用(INT)。下面是一个例子,如何做到这一点: 

复制代码代码如下:

<?php 
$str = "10"; 
$num = (int)$str;?> 


如果要检查的代码REALY工程,我们可以使用===运算符。这个操作符检查不仅值,但类型以及。这样的代码看起来应该是这样的: 

复制代码代码如下:

<?php 
$str = "10"; 
$num = (int)$str; 
if ($str === 10) echo "String"; 
if ($num === 10) echo "Integer"; 
?> 


还有一个问题是开放的。如果我们的字符串是不是一个单纯的数字的字符串,会发生什么。我的意思是有其他字符串中的字符。在这种情况下,转换操作尝试最好的和可以转换的字符串,如果只有空间是有,如果没有有效的字符后的数字值。它的工作原理如下: 

“10” - > 10 
“10.5” - > 10 
“10,5” - > 10 
“10” - > 10 
“10” - > 10 
“10test” - > 10 
“test10” - > 0

posted @ 2013-12-09 09:31  iammackong  阅读(2409)  评论(1编辑  收藏  举报