Home  >  Article  >  php教程  >  The use and difference between intval() and (int) conversion under PHP

The use and difference between intval() and (int) conversion under PHP

黄舟
黄舟Original
2016-12-13 13:03:021315browse

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

Can’t find it in the manual.
This is also what the manual says: Quote:
int intval (mixed $var [, int $base ] )
Returns the integer value of variable var by using a specific base conversion (default is decimal). If there is only this difference, then I like to use (int) to deal with decimal situations. Is it a good choice?
No difference, generally use (int), there are also float, string, array, etc.

intval(), if the parameter is a string, returns the numeric string before the first character in the string that is not a digit The integer value represented. If the first character in the string is ‘-’, counting starts from the second character.

If the parameter is a dot number, its rounded value will be returned.

Of course, the value returned by intval() is within the range that can be represented by a 4-byte value (-2147483648~2147483647). Values ​​exceeding this range will be replaced by boundary values.

Example: intval("A")=0; intval(12.3223)=12; intval("1123Asdfka3243")=1123;
int();
Example:
$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;

Convert PHP string to int

Sometimes, it is important to have the value of a variable in int format. eaxmple, if your visitor fills out the form with the age field, this should be an int. However, in $ _POST array, you get it as a string.
Converting PHP string to int is easy. We need to use your variable type before casting.So you need to use (INT). Here is an example of how to do this:

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

If you want to check that the code REALY works, we can use the === operator. This operator checks not only the value, but the type as well. Such code should look like this:

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

There is also an issue open. What happens if our string is not simply a string of numbers. I mean there are other characters in the string. In this case, the conversion operation tries the best and can convert the string if only space is there and if there are no valid characters after the numeric value. Here's how it works:

“10” - > 10
“10.5” - > 10
“10,5” - > 10
“10” - > 10
"10" - > 10
"10test" - > 10

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn