5:PHP数据类型

PHP 支持 8 种原始数据类型:

四种标量类型: boolean (布尔型)、 integer (整型)、 float (浮点型,也称作 double )、 string (字符串)

两种复合类型:array (数组)、object (对象)

最后是两种特殊类型: resource (资源)、NULL (无类型)

为了确保代码的易读性,还有一些伪类型:mixed (混合类型)、number (数字类型)、callback (回调类型)、以及伪变量 $...。

 

可能还会读到一些关于“双精度(double)”类型的参考。实际上 double 和 float 是相同的,由于一些历史的原因,这两个名称同时存在。

变量的类型通常不是由程序员设定的,确切地说,是由 PHP 根据该变量使用的上下文在运行时决定的;

php数据类型

一、Boolean 布尔类型

这是最简单的类型。 boolean 表达了真值,可以为 TRUE 或 FALSE 。

语法:要指定一个布尔值,使用关键字 TRUE 或 FALSE 。两个都不区分大小写。

  1. <?php
  2. $fujieace  =  True ;

 

二、Integer 整型

一个 integer 是集合 ? = {..., -2, -1, 0, 1, 2, ...} 中的一个数。

语法:整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。

二进制表达的 integer 自 PHP 5.4.0 起可用。

要使用八进制表达,数字前必须加上 0(零)。要使用十六进制表达,数字前必须加上 0x。要使用二进制表达,数字前必须加上 0b。

  1. <?php
  2. $a  =  1234 ;  // 十进制数
  3.  $a  = - 123 ;  // 负数
  4.  $a  =  0123 ;  // 八进制数 (等于十进制 83)
  5.  $a  =  0x1A ;  // 十六进制数 (等于十进制 26)

 

三、Float 浮点型

浮点型(也叫浮点数 float,双精度数 double 或实数 real)可以用以下任一语法定义:

  1. <?php
  2. $a  =  1.234 ;
  3.  $b  =  1.2e3 ;
  4.  $c  =  7E-10 ;

浮点数的字长和平台相关,尽管通常最大值是 1.8e308 并具有 14 位十进制数字的精度(64 位 IEEE 格式)。

 

四、String 字符串

一个字符串 string 就是由一系列的字符组成,其中每个字符等同于一个字节。这意味着 PHP 只能支持 256 的字符集,因此不支持 Unicode 。 string 最大可以达到 2GB。

语法:一个字符串可以用 4 种方式表达:

1. 单引号

2. 双引号

3. heredoc 语法结构 <<<***

4. nowdoc 语法结构(自 PHP 5.3.0 起) <<<'***'

单引号只转义两个字符: \\ 和 \';

双引号转义字符
序列 含义
\n 换行(ASCII 字符集中的 LF 或 0x0A (10))
\r 回车(ASCII 字符集中的 CR 或 0x0D (13))
\t 水平制表符(ASCII 字符集中的 HT 或 0x09 (9))
\v 垂直制表符(ASCII 字符集中的 VT 或 0x0B (11))(自 PHP 5.2.5 起)
\e Escape(ASCII 字符集中的 ESC 或 0x1B (27))(自 PHP 5.4.0 起)
\f 换页(ASCII 字符集中的 FF 或 0x0C (12))(自 PHP 5.2.5 起)
\\ 反斜线
\$ 美元标记
\" 双引号
\[0-7]{1,3} 符合该正则表达式序列的是一个以八进制方式来表达的字符
\x[0-9A-Fa-f]{1,2} 符合该正则表达式序列的是一个以十六进制方式来表达的字符
  1. <?php
  2. //一、单引号
  3. echo  'this is a simple string' ;
  4. //二、双引号
  5. echo  "this is a simple string \n \\ " ;
  6. // 三、Heredoc 结构;heredoc 结构中单引号不用被转义,变量将被替换;
  7. $name='付杰博客';
  8. echo <<<EOT
  9.  My name is "$name"  I am printing some .
  10. Now, I am printing some .
  11. EOT;
  12. //四、Nowdoc 结构; nowdoc 中不进行任何解析操作。
  13. echo <<<'EOT'
  14.  My name is "$name". I am printing some.
  15. Now, I am printing some "$name".
  16. EOT;
  17. ?>

 

五、Array 数组

PHP 中的 数组 实际上是一个有序映射。映射是一种把 values关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。由于数组元素的值也可以是另一个数组,树形结构和多维数组也是允许的。

解释这些结构超出了本手册的范围,但对于每种结构至少会提供一个例子。要得到这些结构的更多信息,建议参考有关此广阔主题的其它著作。

语法:定义数组 array()

可以用 array() 语言结构来新建一个数组。它接受任意数量用逗号分隔的 键(key) => 值(value) 对。

array( key => value
, ...
)

// 键(key)可是是一个整数 integer 或字符串 string

// 值(value)可以是任意类型的值

  1. $array  = array(
  2.      "foo"  =>  "bar" ,
  3.      "bar"  =>  "foo" ,
  4. );
  5. // 自 PHP 5.4 起
  6.  $array  = [
  7.      "foo"  =>  "bar" ,
  8.      "bar"  =>  "foo" ,
  9. ];

 

六、Object 对象

对象初始化:要创建一个新的对象 object ,使用 new 语句实例化一个类:

  1. <?php
  2.  class  foo
  3.  {
  4.  }
  5. $bar  = new  foo ;
  6. var_dump($bar );//object(foo)#1 (0) { }
  7. $obj  = (object)  'ciao' ;
  8. var_dump($obj);// object(stdClass)#2 (1) { ["scalar"]=> string(4) "ciao" } 

 

七、Resource 资源类型

资源 resource 是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。

转换为资源:由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。

 

八、NULL

特殊的 NULL 值表示一个变量没有值。 NULL 类型唯一可能的值就是 NULL 。

在下列情况下一个变量被认为是 NULL :

1. 被赋值为 NULL 。 2. 尚未被赋值。 3. 被 unset() 。

  1. <?php
  2. $var  =  NULL ;
    A+
发布日期:2016年12月28日 18:47:16  所属分类:PHP教程
最后更新时间:2016-12-28 19:46:03
付杰
  • ¥ 49.9元
  • 市场价:99.9元
  • ¥ 69.0元
  • 市场价:69.0元
  • ¥ 298.0元
  • 市场价:398.0元
  • ¥ 0.0元
  • 市场价:99.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  0   博主  0

  1. 付杰 付杰

    PHP类型之间允许的强制转换有:
    1. (int), (integer) – 转换为整形 integer
    2. (bool), (boolean) – 转换为布尔类型 boolean
    3. (float), (double), (real) – 转换为浮点型 float
    4. (string) – 转换为字符串 string
    5. (array) – 转换为数组 array
    6. (object) – 转换为对象 object
    7. (unset) – 转换为 NULL (PHP 5以后)