PHP 数据类型

PHP 支持八种原始类型 -var_dump( )

– 四种标量类型:
布尔型(bolean)
整型(integr)
浮点型(float)(浮点数,也作double)
字符串(String)
– 两种复合类型:
数组(Aray)
对象(Object)
– 最后是两种特殊类型:
资源(Resource)
 NULL

布尔型

这是最简单的类型。bolean 表达了真值,可以为 TRUE
或 FALSE,即“真”或“假”

• 当其他类型转换为 bolean类型 时,以下值被认为是
FALSE:
• 布尔值 FALSE
• 整型值 0(零)
• 浮点型值 0.0(零)
• 空白字符串和字符串”0″
• 没有成员变量的数组
• 没有单元的对象(仅适用于 PHP 4)
• 特殊类型 NULL(包括尚未设定的变量)
所有其它值都被认为是 TRUE(包括任何资源)。

整型和浮点型

• 整型值可以用十进制,十六进制或八进制符号指定,前面
可以加上可选的符号(- 或者 +)代表数值的正负。
• 整数值有最大的使用范围,这与平台有关,对于32位系统
而言范围:-214783648~214783647,PH不支持无符
号整数。如果超出了则变成了float型。

<?php
 $a =1234; / 十进制数
 $a =-123; / 一个负数
 $a =0123; / 八进制数(等于十进制的 83)
 $a =0x1A; / 十六进制数(等于十进制的 26)
?>

 $large_number=214783648;
 var_dump($large_number); /输出:float(214783648)

• 浮点数(也叫双精度数或实数)是包含小数部分的数。通常
用来表示整数无法表示的数据,如金钱值、距离值、速度值
等。浮点数的字长和平台相关,尽管通常最大值是 1.8e308
并具有 14 位十进制数字的精度。
• 可以用以下任何语法定义:


<?php
 $a =1.234;
 $a =1.2e3; //相当于1.2*103即1200
 $a =7E-10; //相当于7*10-10即0.0007

• 注意事项:例:flor(0.1+0.7)*10) 通常会返回 7 而不是预期中的 8,因为该结
果内部的表示其实是7.9。就是不可能精确的用有限位数表达某些十进制分数。
所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是
否相等。如果确实需要更高的精度,应该使用任意精度数学函数或者 gmp 函数。

字符串类型

• 字符串的定义
string是一系列字符。在 PHP 中,字符和字节一样,也就是说,一共有 256 种不同字符
的可能性。这也暗示 PH 对 Unicode 没有本地支持。
注: 一个字符串变得非常巨大也没有问题,PHP 没有给字符串的大小强加实现范围,所
以完全没有理由担心长字符串。
• 语法: – 字符串可以用三种字面上的方法定义:
• 单引号 ”
• 双引号 ” ”
• 定界符 <<< • 单引号:指定一个简单字符串的最简单的方法是用单引号(字符 ')括起来。 • 要表示一个单引号,需要用反斜线(\)转义,和很多其它 语言一样。如果在单引号之前或字符串结尾需要出现一个 反斜线,需要用两个反斜线表示。注意如果试图转义任何 其它字符,反斜线本身也会被显示出来!所以通常不需要 转义反斜线本身。 • 注: 单引号字符串中出现的变量不会被变量的值替代。 [php] <?php echo ‘this a simple string’; /输出:this a simple string echo ‘this a \’simple\‘ string’; /输出:this a 'simple' string echo ‘this \nis \ra \tsimple string\’; /输出:this \nis \ra \tsimple string\ $str=10; echo ‘this a simple $str ing’; /输出:this a simple $str ing ?>[/php] • 双引号:如果用双引号("")括起字符串,PH 懂 得更多特殊字符的转义序列: • 注:双引号字符串最重要一点是其中的变量名会被 变量值替代。此外,如果试图转义任何其它字符, 反斜线本身也会被显示出来!转义字符如下表所示: 序列 含义 [php] \n 换行(LF 或 ASCI 字符 0xA(10) \r 回车(CR 或 ASCI 字符 0xD(13) \t 水平制表符(HT 或 ASCI 字符 0x9(9) \ 反斜线 \$ 美元符号 \” 双引号 \[0-7]{1,3} 此正则表达式序列匹配一个用八进制符号表示的字符 \x[0-9A-Fa-f]{1,2} 此正则表达式序列匹配一个用十六进制符号表示的字符 [/php] [php] < ?php $ber='Heinken'; echo "$ber‘s tase isgreat"; /输出:Heinken's tase isgreat echo "He drank some $bers"; /输出:He drank some echo "He drank some ${ber}s"; /输出:He drank some Heinkens echo "He drank some {$ber}s"; /输出:He drank some Heinkens ?> [/php] • 定界符:另一种给字符串定界的方法使用定界符语法 (“<<<”)。应该在 <<< 之后提供一个标识符,然后是字符串, 然后是同样的标识符结束字符串。 • 定界符中标识符的命名规则与变量的命名规则一样。只能包含 字母数字下划线,而且必须以下划线或非数字符开始。 • 注:结束标识符所在的行不能包含任何其它字符,可能除了一 个分号(;)之外。这尤其意味着该结束标识符不能被缩进,而 且在分号之前和之后都不能有任何空格或制表符。如果破坏了 这条规则使得结束标识符不“干净”,则它不会被视为结束标识符, PH 将继续寻找下去。如果在这种情况下找不到合适的结束标 识符,将会导致一个在脚本最后一行出现的语法错误。 • 不能用定界符语法初始化类成员。用其它字符串语法替代。 • 定界符文本的表现和双引号字符串一样,只是没有双引号

Jason.wang

When you find your talent can't afford to be ambitious, be quiet and study !

You may also like...