在PHP中处理的所有数据都有一定的类型。例如,一个整数、一个字符串或一个布尔值(真/假)。
基本类型也被称为**原始数据类型,或标量类型。
类型 | 名称 | 描述 |
---|---|---|
integer |
整数 | (integer ) 只包含整数。最大值由比特的数量决定。在32位的PHP中,范围是从-2,147,483,648 到-2,147,483,647 (~±20亿),64位PHP的范围是从-9,223,372,036,854,775,808 到-9,223,372,036,854,775,807 (~±9万亿)。最大值总是可以通过调用常数PHP_INT_MAX 来获得。如果超过了一个整数的最大值,PHP将把这个数字表示为float ,并自动覆盖它。 |
float |
浮点小数 | 这是一个浮点数的变体,*"越小越准确 "*的规则适用。数字在内部被存储为所谓的尾数和指数,所以你实际上是在存储两个数字,在这两个数字之间进行尾数*(2^指数) 的运算,这使得存储真正巨大的数字范围成为可能。这采用的原则是,对于大数,我们并不总是需要知道它们的准确值,但我们希望尽可能地节省内存。`float'类型的数字不需要精确存储,不应该用来计算货币。 |
string |
String | 包含一串由引号或撇号分隔的字符。最大长度只受操作存储器容量的限制。一个字符串可以用任何编码存储,包含表情符号或二进制数据。 |
bool |
Boolean | (boolean ) 布尔代数的布尔值,只能包含true 或false 。 |
空值|空值|空值|在我们想表达某物不存在的情况下,空值 "null "是有用的。例如,一篇文章没有类别。有时 "null "被错误地替换为空("0")或空字符串("''),但这并不是表达不存在的好办法。 |
警告: null
类型不是标量。
许多开发人员在开始开发时很难理解0
(零)和null
(不存在的值)之间的区别。
这种区别可以用下面的图片来很好地解释,而且很幽默。
。
有些类型可以在彼此之间转换。目标数据类型是用圆括号指定的,可以在应用程序的任何地方指定,例如,在列出一个值时。
比如说。
$pi = 3.14;echo $pi; //打印出3.14echo (int) $pi; //打印出3
考虑以下2个变量。
$x = 10;$y = '10';
变量$x
和$y
的内容有什么不同?
变量$x
是一个数字,$y
是一个字符串(包含一个 "1 "和一个 "0"),所以如果我们只是将变量存储在内存中,不进行任何操作,会影响数值。例如,以下2个条目将返回相同的结果。
echo $x + 5; //打印出15echo $y + 5; //打印出15
在第二种情况下,发生了所谓的动态覆盖,也就是说,变量转换了它的数据类型,这样就可以对它进行计算操作。这种行为不能总是被依赖,更多的是一种纠正行为,以修复写得不好的初级脚本。如果可能的话,总是用数据类型来存储数字,因为这样可以提高数字的精度,使它们在将来更容易使用。
**注意:**需要注意的是,我们不能完全任意地转换数据类型,所以这并不总是可能的。如果你把一个数据类型覆盖到其他(不兼容)的数据类型,要么转换可能根本没有发生,要么原来的内容可能被破坏或完全被破坏,并被另一个类型所取代。例如,如果你把一个字符串改写成一个整数(并且一些不是数字的文本被存储在变量中),那么值
1
将被存储在变量中,而不是数字值。
在比较数值时,你需要考虑不同的数据类型。
一般来说,==
运算符用于两个值的一般比较(不考虑类型),而===
同时比较值和数据类型。
比如说。
$a = '';$b = null;if ($a == $b) {// 它将被评估为TRUE,因为// 数据类型被转换。}if ($a === $b) {// 执行更严格的验证// 而它不会通过,因为它是一个不同的//内容和不同的数据类型,因此// 这段代码将永远不会运行。}
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | zh