2.2 掌握PHP的数据类型
PHP的数据类型
PHP语言中的数据类型可划分为3类:基本数据类型、复合数据类型及特殊数据类型。各种数据类型包括内容如表2-1所示。
表2-1 PHP数据类型分类
下面我们将对PHP中各个数据类型的用法进行详细介绍。
2.2.1 基本数据类型
1.整型(integer)
PHP中的整型指的是不包含小数部分的数据。在32位的操作系统中,整型数据的有效范围在“-2147483648”至“+2147483647”之间。整型数据可以用十进制数(基数为10)、八进制数(基数为8,以0作为前缀)或十六进制数(基数为16,以0x作为前缀)表示,并且可以包含“+”和“-”。整型数据的用法如下面代码所示:
<?php $a=100; //十进制整型数据 $b=-034; //八进制整型数据 $c=0xBF; //十六进制整型数据 ?>
Note
如果给定的数字超出了整型数据规定的范围,会产生数据溢出。对于这种情况,PHP会自动将整型数据转化为浮点型数据。
2.浮点型(float)
浮点型数据就是通常所说的实数,可分为单精度浮点型及双精度浮点型。浮点数主要用于简单整数无法满足的形式,比如长度、重量等数据的表示。浮点型数据的用法如下面代码所示:
<?php $a = 1.0; $b = 3.1415; $c=1.2E2; //该浮点数表示1.2*10² ?>
3.布尔型(boolean)
布尔型数据是从PHP 4开始出现的,一个布尔型的数据只有“true”和“false”两种取值,分别对应了逻辑“真”与逻辑“假”。布尔型数据的用法如下面代码所示;
<?php $a = TRUE; $b = FALSE; ?>
Note
在使用布尔型数据类型时,“true”和“false”两个取值是不区分大小写的,也就是说“TRUE”和“FALSE”同样也是正确的。
4.字符串(string)
字符串是一个字符的序列。组成字符串的字符是任意的,可以是字母、数字或者符号。在PHP中没有对字符串的最大长度进行严格规定。在PHP中定义字符串有3种方式:使用单引号、使用双引号和使用定界符。下面是一个使用字符串的例子:
代码2-4光盘\codes\第2章\2.2\zifuchuan.php
<?php echo'It\'s a computer!!!<br>'; //使用单引号定义 echo'show me a\\<br>'; //使用单引号定义并且转义 $var="这是一个字符串"; //使用双引号定义 echo<<<END //使用定界符定义 在这里我们可以加入任意的文本信息内容,比如"中国", 比如'奥运'。所有的双引号和单引号都会被正常显示。 END ?>
上面程序执行后的结果如图2-4所示。
图2-4 使用字符串的例子
Note
为了便于读者快速了解字符串,这里只给出了一个最基本的字符串应用,在本书第5章中将会给出PHP字符串应用的详细讲解。
2.2.2 复合数据类型
1.数组(array)
数组是一系列相关的数据,以某种特定的方式进行排列而组成的集合。组成这个集合的各个数据可以是基本数据类型的,也可以是复合数据类型的;可以是相同数据类型的,也可以是不同数据类型的。
数组里的每一个数据元素都有其唯一的编号,称为索引。索引用于指定数组中特定的数据元素。在有些编程语言中数组的索引必须是数字,而在PHP中,索引既可以是数字,也可以是字符串。一个简单的PHP数组应用示例代码如下:
代码2-5光盘\codes\第2章\2.2\shuzu.php
<?php $number[0]="zero"; $number[1]="one"; $number[2]="two"; $number["three"]=3; echo $number[1]; echo $number["three"]; ?>
该程序被执行时,得到结果如图2-5所示。
图2-5 数组的简单应用
Note
为了便于读者快速认识数组,这里只给出了一个PHP数组最基本的应用。实际上在开发过程中数组是一个非常重要的元素,会经常被用到。我们将在本书第4章中给出PHP数组用法及应用的详细讲解。
2.对象(object)
对象是面向对象编程方式中的一个核心概念,对象就是类的一个实例。在了解对象之前先简单介绍一下什么是“类”。在面向对象编程方式中,人们把各个具体事物的共性特征抽取出来,形成一个一般的概念,也就构成了一个“类”。在PHP中类的定义方式如下:
class类名 { 类里包含的内容; }
前面已经说过,对象是类的一个实例,在PHP中是通过“new”关键字来实例化一个对象的。类和对象的应用示例如下面代码所示:
代码2-6光盘\codes\第2章\2.2\duixiang.php
<?php class Book{ //定义一个书的类,该类包含一个方法用于返回书名 function getBookName($book_name){ return $book_name; } } $book1=new Book(); //实例化一个Book类的对象book1 echo $book1->getBookName("PHP")."<br>"; $book2=new Book(); //实例化一个Book类的对象book2 echo $book2->getBookName("JSP"); ?>
该程序被执行时,得到的结果如图2-6所示。
图2-6 对象的应用
Note
看了上面例子中的代码,部分没有接触过面向对象语言的读者肯定会感到迷惑。不用担心,我们将会在本书第7章中对面向对象语言的特点及PHP中的应用进行详细讲解。
2.2.3 特殊数据类型
1.NULL
NULL是PHP 4开始引入的一个特殊的数据类型,这种数据类型只有一个值——NULL。在PHP中,如果变量满足如下几种情况,那么该变量的值就为NULL。
● 变量未被赋予任何值。
● 变量被赋值为NULL。
● 被unset()函数处理后的变量。
关于NULL数据类型的使用,如下面代码所示:
<?php $a; //变量$a未被赋予任何值,$a的值为NULL $b=NULL; //变量$b被赋值为NULL $c = 1; unset($c); //使用unset()函数处理后,$c的值为NULL ?>
2.资源
资源是PHP的另外一种特殊数据类型,该数据类型用于表示一个PHP的外部资源,比如,一个数据库的访问操作,或者一个网络流的处理等。虽然资源也是一种数据类型,但是我们却不能直接对其进行操作。PHP提供了一些特定的函数,用于建立和使用资源。比如,mysql_connect()函数用于建立一个MySQL数据的连接,而fopen()函数用于打开一个文件等。应用资源数据类型的示例代码如下所示:
代码2-7光盘\codes\第2章\2.2\ziyuan.php
<?php $connect=mysql_connect(); //调用mysql_connect()建立MySQL数据库连接 echo get_resource_type($connect)."<br>"; //调用get_resource_type()显示这个资源类型 $fopen=fopen("ziyuan.php","r"); //调用fopen()打开文件ziyuan.php echo get_resource_type($fopen); //调用get_resource_type()显示这个资源类型 ?>
如果读者电脑中已经安装并开启了MySQL数据库的服务,运行上面程序时,得到的运行结果如图2-7所示。
图2-7 资源的应用