php的基本数据类型
2012-10-18 16:32
183 查看
PHP 支持8种基本的数据类型。
四种标量类型:
boolean (布尔型)
integer (整型)
float (符点型, 也称作 double)
string (字符串)
两种复合类型:
array (数组)
object (对象)
最后是两种特殊类型:
resource (资源)
NULL (NULL)
使用var_dump()可显示数据类型;
可强制转换数据类型;如 $num = '45'; echo 1 + (int)$num;而实际上PHP是弱类型语言,对于此例可不用强制转换,可以自动进行类型转换。
boolean:取两个值,true/false,不区分大小写。
当转换为 boolean 时,以下值被认为是 FALSE:
the 布尔值 FALSE 自身
the 整型值 0 (零)
the 浮点型值 0.0 (零)
空字符串, 以及 字符串 "0"
不包括任何元素的数组
不包括任何成员变量的对象(仅PHP 4.0 适用)
特殊类型 NULL (包括尚未设定的变量)
从没有任何标记(tags)的XML文档生成的SimpleXML 对象
所有其它值都被认为是 TRUE(包括任何资源)。
整型:
整型值可以使用十进制,十六进制或八进制表示,前面可以加上可选的符号(- 或者 +)。八进制表示数字前必须加上 0(零),十六进制表示数字前必须加上 0x。
windows平台下,为有符号的32位,其中符号占据一位,最大值为 2^31 - 1(2147483647),可以用常量PHP_INT_MAX 表示;若溢出将被自动转换为浮点型;
如果向八进制数传递了一个非法数字(即 8 或 9),则后面其余数字会被忽略。
浮点型:
PHP不区分float与double;而且会有某些精度的丢失;
单引号:'','My test';
双引号:"","PHP字符串";
heredoc:
其中,EOF,是一个标记符,可以自定义,但习惯应避开关键字,标记符大小写敏感;而且 第一个 EOF 也可以加上双引号;第二个标记必须出现在新的行首。
heredoc可以识别变量以及单、双引号中的转义符,但不对双引号转义;
nowdoc:将heredoc的标记加为单引号或将双引号标记替换为单引号即为nowdoc风格;nowdoc能够实现真正的所见即所得;
字符串是一种特殊的数组;
数组:
PHP 中的 数组 实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。数组元素的值也可以是另一个数组。树形结构和多维数组也是允许的。
可以使用array()来定义数组:
对象:
is_resource() 函数测定一个变量是否是资源,函数 get_resource_type() 则返回该资源的类型。
NULL:
特殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 NULL。
在下列情况下一个变量被认为是 NULL:
被赋值为 NULL。
尚未被赋值。
被 unset()。
允许的强制转换有:
(int), (integer) - 转换为 整型(integer)
(bool), (boolean) - 转换为 布尔型(boolean)
(float), (double), (real) - 转换为 浮点型(float)
(string) - 转换为 字符串(string)
(binary) - 转换为二进制 字符串(string) (PHP 6)
(array) - 转换为 数组(array)
(object) - 转换为 对象(object)
(unset) - 转换为 NULL (PHP 5)
(binary) 转换会在结果前面加上前缀'b',PHP 5.2.1 新增。
四种标量类型:
boolean (布尔型)
integer (整型)
float (符点型, 也称作 double)
string (字符串)
两种复合类型:
array (数组)
object (对象)
最后是两种特殊类型:
resource (资源)
NULL (NULL)
使用var_dump()可显示数据类型;
可强制转换数据类型;如 $num = '45'; echo 1 + (int)$num;而实际上PHP是弱类型语言,对于此例可不用强制转换,可以自动进行类型转换。
布尔型:
boolean:取两个值,true/false,不区分大小写。
当转换为 boolean 时,以下值被认为是 FALSE:
the 布尔值 FALSE 自身
the 整型值 0 (零)
the 浮点型值 0.0 (零)
空字符串, 以及 字符串 "0"
不包括任何元素的数组
不包括任何成员变量的对象(仅PHP 4.0 适用)
特殊类型 NULL (包括尚未设定的变量)
从没有任何标记(tags)的XML文档生成的SimpleXML 对象
所有其它值都被认为是 TRUE(包括任何资源)。
整型:
整型值可以使用十进制,十六进制或八进制表示,前面可以加上可选的符号(- 或者 +)。八进制表示数字前必须加上 0(零),十六进制表示数字前必须加上 0x。
windows平台下,为有符号的32位,其中符号占据一位,最大值为 2^31 - 1(2147483647),可以用常量PHP_INT_MAX 表示;若溢出将被自动转换为浮点型;
如果向八进制数传递了一个非法数字(即 8 或 9),则后面其余数字会被忽略。
<?php var_dump(011090); // int 72
浮点型:
PHP不区分float与double;而且会有某些精度的丢失;
Strings:
字符串有四种声明方式:单引号:'','My test';
双引号:"","PHP字符串";
heredoc:
<<< EOF HP不区分float与double;而且会有某些精度的丢失少的呢个就 EOF
其中,EOF,是一个标记符,可以自定义,但习惯应避开关键字,标记符大小写敏感;而且 第一个 EOF 也可以加上双引号;第二个标记必须出现在新的行首。
heredoc可以识别变量以及单、双引号中的转义符,但不对双引号转义;
$name = 'Tim'; $tester = <<<EOAW $name saied:"It's my book!\n" "test" 'It's my book!\n' over EOAW; echo $tester; 输出为:Tim saied:"It's my book! " "test" 'It's my book! ' over
nowdoc:将heredoc的标记加为单引号或将双引号标记替换为单引号即为nowdoc风格;nowdoc能够实现真正的所见即所得;
$name = 'Tim'; $tester = <<<'EOAW' $name saied:"It's my book!\n" "test" 'It's my book!\n' over EOAW; echo $tester; 输出为: $name saied:"It's my book!\n" "test" 'It's my book!\n' over
字符串是一种特殊的数组;
数组:
PHP 中的 数组 实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。数组元素的值也可以是另一个数组。树形结构和多维数组也是允许的。
可以使用array()来定义数组:
$arr = '新疆特产'; $fruits = array('0' => 'apple', 1 => 'orange', 2 => 'pear', true=> '葡萄', false=> '橙子', 4.5 => '西瓜', NULL => '不知道', -6 => '杏', $arr => '哈密瓜', ); print_r($fruits); 输出: Array ( [0] => 橙子 [1] => 葡萄 [2] => pear [4] => 西瓜 [] => 不知道 [-6] => 杏 [新疆特产] => 哈密瓜 )
// 键(key) 可是是一个 整数(integer) 或 字符串(string),key中的浮点型将被取整为integer; //使用 TRUE 作为键名将使 integer 1 成为键名。使用 FALSE 作为键名将使 integer 0 成为键名。使用 NULL 作为键名将等同于使用空字符串。使用空字符串作为键名将新建(或覆盖)一个用空字符串作为键名的值,这和用空的方括号不一样。
// 值(value) 可以是任意类型的值
不能用数组和对象作为键(key)。这样做会导致一个警告:Illegal offset type。
//定义数组 $arr = array('新疆特产'); $fruits = array('0' => 'apple', 1 => 'orange', 2 => 'pear', true=> '葡萄', false=> '橙子', 4.5 => '西瓜', NULL => '不知道', -6 => '杏', $arr => '哈密瓜', ); print_r($fruits); 输出: ( ! ) Warning: Illegal offset type in ……index.php on line 74 Call Stack # Time Memory Function Location 1 0.0006 347864 {main}( ) ..\index.php:0 Array ( [0] => 橙子 [1] => 葡萄 [2] => pear [4] => 西瓜 [] => 不知道 [-6] => 杏 )
对象:
资源类型:
资源是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。is_resource() 函数测定一个变量是否是资源,函数 get_resource_type() 则返回该资源的类型。
NULL:
特殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 NULL。
在下列情况下一个变量被认为是 NULL:
被赋值为 NULL。
尚未被赋值。
被 unset()。
类型强制转换
在要转换的变量之前加上用括号括起来的目标类型。允许的强制转换有:
(int), (integer) - 转换为 整型(integer)
(bool), (boolean) - 转换为 布尔型(boolean)
(float), (double), (real) - 转换为 浮点型(float)
(string) - 转换为 字符串(string)
(binary) - 转换为二进制 字符串(string) (PHP 6)
(array) - 转换为 数组(array)
(object) - 转换为 对象(object)
(unset) - 转换为 NULL (PHP 5)
(binary) 转换会在结果前面加上前缀'b',PHP 5.2.1 新增。
相关文章推荐
- php基本语法和数据类型、变量销毁
- PHP 八种基本的数据类型小结
- php学习笔记(3):PHP基本语法和数据类型:
- php常量,预定义常量,魔术常量及基本数据类型
- PHP中基本数据类型的特点
- 5. php 基本数据类型
- PHP 八种基本的数据类型小结
- PHP基础 之 基本数据类型练习
- PHP 支持8种基本的数据类型。
- PHP基础教程二之基本数据类型
- PHP内核中的基本数据类型
- PHP 八种基本的数据类型
- php基本数据类型+数组常用函数
- PHP第三课 PHP的基本数据类型
- PHP 八种基本的数据类型
- PHP基本语法和数据类型
- php基础入门一(基本数据类型、运算符、二种复合数据类型)
- PHP 6:PHP 基本数据类型
- PHP 八种基本的数据类型
- PHP 八种基本的数据类型