PHP变量的数据类型

变量的数据类型



数据类型是具有相同特性的一组数据的统称。PHP 早就提供了丰富的数据类型,PHP 5 中又有更多补充。数据类型可以分为 3 类:标量数据类型、复合数据类型和特殊数据类型。

标量类型(四种):

整型(int,integer)

浮点型(float,double,real)

布尔型(bool,boolean)

字符串(string)

复合类型(两种):

数组(array)

对象(object)

特殊类型(两种):

资源(resource)

空值(NULL)



1、整型(integer)

PHP 中的整型指的是不包含小数部分的数据。在 32 位操作系统中,整型数据的有效范围在“-2147483648~+2147483647”之间。整型数据可以用十进制(基数为 10)、八进制(基数为 8,以 0 作为前缀)或十六进制(基数为 16,以 0x作为前缀)表示,并且可以包含“+”和“-”。整型数据的用法如下面代码所示。

<?php
$a = 100; //十进制整型数据
$b = -034; //八进制整型数据
$c = 0xBF; //十六进制整型数据
echo $a."<br>";
echo $b."<br>";
echo $c;
?>

在浏览器中输出为:

100
-28
191

如果给定的数字超出了整型数据规定的范围,则会产生数据溢出。对于这种情况,PHP 会自动将整型数据转化为浮点型数据。

2、浮点型(float)

浮点型数据就是通常所说的实数,可分为单精度浮点型数据和双精度浮点型数据。浮点数主要用于简单整数无法满足的形式,比如长度、重量等数据的表示。浮点型数据的用法如下面代码所示。

<?php
$a = 1.2;
$b = -0.34;
$c = 1.8e4; //该浮点数表示1.8×104
echo $a."<br>";
echo $b."<br>";
echo $c;
?>

在浏览器中输出为:

13
1.2
-0.34
18000

3、布尔型(boolean)

布尔型数据是在 PHP 4 中开始出现的,一个布尔型的数据只有“true”和“false”两种取值,分别对应逻辑“真”与逻辑“假”。布尔型变量的用法如下面代码所示。在使用布尔型数据类型时,“true”和“false”两个取值是不区分大小写的。也就是说“TRUE”和“FALSE”同样是正确的。

<?php
$a = true;
$b = false;
echo $a;
echo $b;
?>

在浏览器中输出为:

1

当布尔值为“true”时,输出为 1,当布尔值为“false”时,输出为空。

4、字符串(string)

字符串是一个字符的序列。组成字符串的字符是任意的,可以是字母、数字或者符号。在 PHP 中没有对字符串的最大长度进行严格的规定。在 PHP 中定义字符串有 3 种方式:使用单引号(')定义、使用双引号(")定义和使用定界符(<<<)定义。下面是一个使用字符串的例子。

<?php
$var = "中国人";
echo "我是$var"."<br>";
echo '我是$var'.'<br>';
echo "今天天气很好!"."<br>";
echo '我们去图书馆。'."<br>";
echo <<<Eof
我是一个{$var}
Eof;
?>

在浏览器中输出为:

我是中国人
我是$var
今天天气很好!
我是中国人
我是$var
今天天气很好!
我们去图书馆。
我是一个中国人

php 中单引号和双引号的最大区别就是,双引号比单引号多一步解析过程。双引号会把双引号中的变量及转义字符解析出来。而单引号则不管它的内容是什么,都作为字符串输出。在双引号中,中文和变量一起使用时,变量最好要用{}括起来,或变量前后的字符串用双引号,再用“.”与变量相连。

<?php
$str = "年轻人";
echo "我们都是$str,应该多学习。"."<br>";
echo "我们都是{$str},应该多学习。"."<br>";
echo "我们都是".$str.",应该多学习。";
?>

在浏览器中输出为:

我们都是
我们都是年轻人,应该多学习。
我们都是年轻人,应该多学习。

第一句输出因为变量没用{}括起来,或者没有将字符串分开,再用“.”与变量相连,因此变量及其后面的字符串不能输出,第二、三句输出都正常。

在一般情况下,我们尽量使用单引号,因为在理论上,单引号的运行速度要快些,

如果遇到有变量及转义字符需要解析时,我们才用双引号。

下面是一些常用的转义字符:

转移序列 描述

\n 换行符

\r 回车符

\t 制表符

\\ 反斜线

\$ 美元符

\" 双引号

值得注意的是,“\n”,“ \r”和“ \t”三个转义字符在浏览器中不能反应出来,只能在源文件看到。

PHP 定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;在 PHP 定界符中的任何特殊字符都不需要转义;PHP 定界符中的 PHP 变量会被正常的用其值来替换。使用定界符应注意以下几点:

(1)在<<<之后的字符 Eof 是自己定义的,随便什么都是可以的,但是结尾处的字符一定要和他一样,他们是成对出现的;

(2)结尾的 Eof;,一定要另起一行,并且除了 Eof;这个定界符结尾标识之外不能有任何其他字符,前后都不能有,包括空格;

(3)如果在定界符中间出现有 PHP 的变量,你只需要像在其它字符串中输出一样写就行了,变量$var 之所以要用{}括起来是要告诉 PHP 解析器这是一个

PHP 变量,其实不用也是可以的,但是有可能会产生歧义。

5、数组(array)

数组是一系列相关的数据以某种特定的方式进行排列而组成的集合。组成这个集合的各个数据可以是基本数据类型,也可以是复合数据类型;可以是相同的数据类型,也可以是不同的数据类型。

数组里的每一个数据元素都有其唯一的编号,称为索引。索引用于指定数组中特定的数据元素。在有的语言中数组的索引必须是数字编号,而在 PHP 中,索引可以是数字编号,也可以是字符串。

一个简单的 PHP 数组的应用示例代码如下。

<?php
$network = array(1=>"how",2=>are,'three'=>"you");
echo $network[2];
echo $network[three];
?>

在浏览器中输出为:

areyou

6、对象(object)

对象是面向对象语言中的一个核心概念,对象就是类的一个实例。在了解对象之前我们先简单介绍一下什么是“类”。在面向对象语言中,人们把各个具体事物的共同特征抽取出来,形成一个一般的概念,也就构成了一个“类”。在 PHP 中类的定义方式如下。

class 类名 {

类里包含的内容;

}

在 PHP 中,通过“new”关键字来实例化一个类并得到该类的一个对象。类和对象的应用示例如下面代码所示。

<?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");
?>

在浏览器中输出为:

PHP
JSP

7、资源(resource)

资源是 PHP 提供的一种特殊数据类型,该数据类型用于表示一个 PHP 的外部资源,比如一个数据库的访问操作,或者一个网络流的处理等。虽然资源也是一种数据类型,但是我们却不能直接对它进行操作。PHP 提供了一些特定的函数,用于建立和使用资源。比如“mysql_connect()”函数用于建立一个 MySQL 数据的连接,“fopen()”函数用于打开一个文件等。

应用资源数据类型的示例代码如下。

<?php
$cn = mysql_connect('localhost','root');
echo get_resource_type($cn)."<br>";
$fp = fopen("foo","w");
echo get_resource_type($fp);
?>

在浏览器中输出为:

mysql link
stream

8、空值(NULL)

NULL 是 PHP 4 开始引入的一个特殊的数据类型,这种数据类型只有一个值NULL。在 PHP 中,如果变量满足以下几种情况,那么该变量的值就为 NULL。变量未被赋予任何值。变量被赋值为 NULL。

被 unset()函数处理后的变量。

下面是使用 NULL 数据类型的一个示例。

<?php
$a ; //变量$a未被赋予任何值,$a的值为NULL
$b = NULL ; //变量$b被赋值为NULL
18
$c = 1 ;
unset($c); //使用unset()函数处理后,$c的值为NULL
?>

猜你喜欢

转载自1004076836.iteye.com/blog/2414155