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 | ||||
$total=12; //Total is an integer ?>
|
PHP supports eight primitive types (types).
Four scalar types:
string (string)
float (floating point type, also called double )
boolean
Two compound types:
array (array)
object
Two special types:
代码如下 | 复制代码 |
$var_bool = TRUE; // a boolean echo gettype($var_bool); // 输出 boolean |
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
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
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). 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.
� 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
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).
|
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
|
Copy code
|
||||
$a=1.2e3;