PHP提供了8种类型的值,也称8种数据类型。其中,4种是标量型(单值),两种复合类型(集合),
还有两种特殊类型。
四种标量型的值有:整型、浮点型、字符串、布尔型。
两种复合类型:数组和对象。
两种特殊类型:资源和NULL。
1.整型:
整型即是整数,如1,3,5,-290等。
整型的字面量可以用十进制数、八进制数、二进制数或十六进制数来表示。
十进制数由不以0开头的数字序列来表示,这个数可以用正号("+")或负号("-")开头,如12,-98等。
八进制数是由一个前导0和一个从0-7的数字序列组成,和十进制数一样,八进制数前面也可以有
正号("+")或负号("-")。
例如:0755(十进制数493),-010(十进制数-8)等。
十六进制数是以0x开头,接着是数字(0-9)或字母(A-F)的序列。字母可以大写或小写,通常
是大写。同八进制和十进制一样,十六进制数前面也可以加上正号或负号。
例如:0xff(表示十进制数255);-0xDAD1(表示十进制数-56017);
如果尝试将一个太大的整数存储为整型或不完全是数字的变量蹴存储为整型,它会自动转换成一个
浮点数。
可以使用is_int( )函数(或is_integer( ))来测试一个值是否是一个整型,如果是整型则返回true,否则返回false。
2.浮点数
浮点数(通常简称为实数)是由十进制数表示的数值。
PHP认可两种不同格式的浮点数:
通常使用的是:3.14;0.012;-90等;
PHP也支持科学计数法:0.34E1(十进制数3.4);17.0E-3(十进制数0.017);
浮点数只是数的近似表示。
使用is_float( )函数来测试一个值是否是浮点数,如果是浮点型则返回true,否则返回false。
3.字符串
字符串是一个任意长度的字符序列,字符串字面量由单引号或双引号分隔。例如:‘big dog' , ' a small basket' 等。
变量在双引号中会被解析(解释),而在单引号中,他们不会被解析。
例如:$name="Guido";
echo "Hi,$name\n";//Hi,Guido;双引号中的被解析
echo 'Hi,$name';//Hi,$name;单引号中的不会被解析
双引号支持多种字符串转义,可自行搜索。
单引号中的字符串通过\\获得一个反斜杠的字面量,用\‘得到一个单引号的字面量:
<?php
$dosPath='C:\\WINDOWS\\SYSTEM';
$publish='Tom o\'Reilly';
echo "$dosPath","<br>";
echo $publish;
?>
输出结果为:
C:\WINDOWS\SYSTEM
Tom o'Reilly
要测试两个字符串是否相等,使用”==“(双等号)比较符;如果两个字符串相等,则返回true;
使用is_string( )函数来测试一个值是否为字符串。
4.布尔型
PHP定义了一些值为true,另外一些值为false。true和false决定了条件代码的结果
在PHP中,以下值得计算结果为false:
关键字false;
整型0;
浮点数0.0;
空字符串(" " )和字符串"0"
空数组
空对象NULL值
可使用is_bool( )函数来测试一个值是否是布尔型。
5.数组
数组保存一组值,这些值可以由位置(一个数组,0是第一位)或一些标志性的名称(字符串)来
确定关联,称为关联索引:
例如:$person[0]="Edison";
$creator['Light bulb']="Crappler";
通过array( )结构创建一个数组。
例如:$person=array("Edison","Kim","Jackson");
$creator=array('Light bulb'=>'Edison',
'Toliet'=>'Crapper');
使用foreach循环来遍历数组:
例5:
$person=array('aa'=>'11','bb'=>'22','cc'=>'33');
foreach ($person as $name){
echo "Hello,{$name}<br>";
输出结果为:
Hello,11
Hello,22
Hello,33
使用is_array( )函数来测试一个值是否是数组。
6.对象
PHP也支持面向对象编程(OOP)。
OOP促进了更清晰的模块化设计,简化了测试和维护工作并有助于代码复用。
类(class)是面向对象设计的基础。类是一个包含属性(变量)和方法(函数)的结
构,其中类用关键字class定义:
class Person{
public $name='';
function name($newname=NULL){
if(!is_null($newname)){
$this->name=$newname;
}
return $this->name;
}
}
一旦定义了一个类,就可以用关键字new创建这个类的任意数量的对象,类的属性和方法可以
通过 -> 结构来访问:
$ed=new Person;
$ed->name('Edison');
echo "Hello,{$ed->name}";
输出结果为:Hello,Edison
使用is_boject( )函数可测试一个值是否为对象。
7.资源
许多模块提供一些函数用于处理外部事物。
每个活动的资源都有一个唯一的标识符,每个标识符对应着php内部结构表中
的一个数字,这个表中保存了有关所有活动的资源的信息。PHP在这个表中保
存每个资源的信息,以及在整个代码中引用(或使用)的资源数目。当最后一
个引用的资源销毁,创建该资源的扩展将被调用,用于释放内存,关闭连接等。
使用is_resource( )函数测试一个值是否为资源。
8.回调
回调是一些函数或对象的方法被另一些函数的调用。
例如:$callback=function(){
echo "callback achieved";
}
call_user_func($callback);
9.NULL
NULL数据类型只有一个值。这个值可以通过不区分大小写的关键字null获得。
null的值表示一个变量没有值。
使用is_null( )函数来测试一个值是否为null,即是查看一个变量是否有值。