Home  >  Article  >  Backend Development  >  Detailed explanation of numerical data types in PHP introductory tutorial_PHP tutorial

Detailed explanation of numerical data types in PHP introductory tutorial_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 17:13:25911browse

PHP is weakly typed. You don’t need to define the type of the variable when using it. You can define the type for the number while using it. The variable will automatically be of whatever type you give the variable.

In PHP, the types of variables are determined by the values ​​assigned to them. If the assigned value is an integer, then the variable is of integer type; if it is a string, it is of string type.

The code is as follows Copy code
 代码如下 复制代码

$name="your name";//name位string类型。
$total=12; //total为整型
?>

$name="your name"; //name is string type.
$total=12; //Total is an integer

?>

PHP supports eight primitive types (types).

Four scalar types:

string (string)

integer (integer type)

float (floating point type, also called double )
boolean
Two compound types:

array (array)
object
Two special types:

resource
 代码如下 复制代码

$var_bool = TRUE; // a boolean
$var_str = "foo"; // a string
$var_int = 12; // an integer

echo gettype($var_bool); // 输出 boolean
echo gettype($var_str); // 输出 string
echo gettype($var_int); // 输出 integer
?>

NULL

View variable type
You can easily check the type of a variable through the gettype() function:

The code is as follows Copy code

$var_bool = TRUE; // a boolean

$var_str = "foo"; // a string
代码如下 复制代码

$var_int = 12;

// 如果 $var_int 是 int 类型,这进行加法
if (is_int($var_int)) {
$var_int = $var_int+4;
}
echo $var_int; // 输出 16
?>


 

$var_int = 12; // an integer

echo gettype($var_bool); // Output boolean echo gettype($var_str); // Output string

echo gettype($var_int); // Output integer

?>

Tips

For historical reasons, if it is float type data, the gettype() function returns double instead of float.

If you want to see the value and type of an expression, use the var_dump() function.

Determine variable type
 代码如下 复制代码

$a=1234; //十进制数

$a=-123; //一个负数

$a=0123; //八进制数(等于十进制的 83)

$a=0x1A; //十六进制数(等于十进制的 26)

?>

If you want to determine the next logical action by judging the variable type, do not use gettype(), but use the is_type series of functions:
The code is as follows Copy code
$var_int = 12;<🎜> <🎜>// If $var_int is of type int, this performs addition<🎜> if (is_int($var_int)) {<🎜> $var_int = $var_int+4;<🎜> }<🎜> echo $var_int; // Output 16<🎜> ?>
integer data type : An integer is a number in the set Z={…,-2,-1,0,1,2,…}. Integer values ​​can be specified in decimal, hexadecimal or octal notation, preceded by an optional sign (- or +). If using octal notation, 0 (zero) must be added before the number, and 0x must be added before the number using hexadecimal notation. For example:
The code is as follows Copy code
<🎜>$a=1234; //Decimal number<🎜> <🎜>$a=-123;    //A negative number<🎜> <🎜>$a=0123; //Octal number (equal to decimal 83)<🎜> <🎜>$a=0x1A; //Hexadecimal number (equal to decimal 26)<🎜> <🎜>?>

Integer values ​​can be represented in decimal, hexadecimal or octal, and can be preceded by an optional sign (- or +).

Octal means 0 (zero) must be added before the number, and hexadecimal means 0x must be added before the number.

The word size of integers is platform-dependent, although the usual maximum is about two billion (32-bit signed). PHP does not support unsigned integers. The word length of an Integer value can be represented by the constant PHP_INT_SIZE. Since PHP 4.4.0 and PHP 5.0.5, the maximum value can be represented by the constant PHP_INT_MAX.

If a given number exceeds the range of integer, it will be interpreted as float. Similarly, if the result of the operation exceeds the range of integer, float will also be returned.

There is no integer division operator in PHP. 1/2 yields float 0.5. You can always discard the fractional part, or use the round() function.

To explicitly convert a value to an integer, use (int) or (integer) cast. In most cases, however, casting is not necessary because when an operator, function, or flow control requires an integer parameter, the value is automatically converted. You can also use the function intval() to convert a value to an integer type.

Converting from a Boolean value, FALSE will produce 0 (zero), TRUE will produce 1 (one).
Converting from a floating point number. When converting from a floating point number to an integer, rounding towards zero is performed. If the floating point number is outside the integer range (usually +/- 2.15e+9 = 2^31), the result is undefined because there is not enough precision for the floating point number to give an exact integer result. There is no warning in this case, not even any notification!

Boolean is the simplest type. boolean expresses a truth value and can be TRUE or FALSE. To specify a Boolean value, use the keywords TRUE or FALSE, both of which are case-insensitive.

The code is as follows Copy code
 代码如下 复制代码

$foo=True; //将 true 值赋给$foo

?>

$foo=True; //Assign the true value to $foo

?>

The following values ​​are considered FALSE:

� Boolean value FALSE

�  Integer value 0 (zero)

� Floating point value 0.0 (zero)

� Blank string and string "0"

� Array without member variables

� Object without units

� Special type NULL (including variables not yet set) All other values ​​are considered TRUE (including any resources)

float data type

 代码如下 复制代码

$a = 76.60;
$b = 76.00;

$c = $a-$b;
var_dump($c);

?>

输出是
float(0.59999999999999)

The word length of floating point numbers is platform-dependent, although typically the maximum value is 1.8e308 with a precision of 14 decimal digits (64-bit IEEE format).

Apparently simple decimal fractions like 0.1 or 0.7 cannot be converted to the internal binary format without losing a bit of precision. This can lead to confusing results: for example, floor((0.1+0.7)*10) will often return 7 instead of the expected 8 because the internal representation of the result is something like 7.9.

The code is as follows Copy code
代码如下 复制代码

$a = 76.60;
$d = intval($a*100);
var_dump($d);
$a = 76.60;
$d = intval($a*100);
var_dump($d);
输出是int(7659)

<🎜>$a = 76.60;<🎜> $b = 76.00;<🎜> <🎜>$c = $a-$b;<🎜> var_dump($c);<🎜> <🎜>?> The output is float(0.59999999999999)
However, this problem will not occur at 76.70... Later I found out
The code is as follows Copy code
$a = 76.60; $d = intval($a*100); var_dump($d); $a = 76.60; $d = intval($a*100); var_dump($d); The output is int(7659)

That is indeed a problem with 76.60... (This problem is also reproduced in Java and Obj-C)

This is related to the fact that it is impossible to express certain decimal fractions accurately with a finite number of digits. For example, 1/3 in decimal becomes 0.3.

Floating point

Floating point numbers (also called "floats", "doubles" or "real numbers") can be defined with any of the following syntax:

The code is as follows
 代码如下 复制代码

$a=1.234;

$a=1.2e3;

$a=7E-10;

?>

Copy code

$a=1.234;

$a=1.2e3;

?> We have explained these number types in php in detail. Friends who need to know more can refer to it.
http://www.bkjia.com/PHPjc/629160.html
www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/629160.htmlTechArticlePHP is weakly typed. You don’t need to define the type of the variable when using it. You can define the type for the number while using it. The variable will automatically be of whatever type you give it. In PHP, variables...
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