人生的磨难是很多的,所以我们不可对于每一件轻微的伤害都过于敏感。在生活磨难面前,精神上的坚强和无动于衷是我们抵抗罪恶和人生意外的最好武器。
—— 洛克
这是PHP基础的第三节,上一节讲了变量的含义,这一节里我们来说一说PHP中的数据类型。
1
分类
PHP 支持8种基本的数据类型:
4种标量类型:整型(integer)、浮点型 (其实就是小数,float 和 double,他们的区别是精度不一样)、布尔型(boolean)、字符串 (string)
2种复合类型:数组 (array)、对象(object);
2种特殊类型:资源(resource)、空(NULL)。
接下来,一一介绍下这些数据类型。
2
整型
从小学数学我们就知道,整数使用至少一个数字(0-9)来表示的;整数不能带有小数点;整数正负均可。
整数除我们常使用的十进制数外,在编码中也会使用 十六进制(前缀是 0x)或八进制(前缀是 0)来表示整数。
PHP使 用var_dump() 函数可以返回变量的数据类型和值。下面我们试试看,整数打印出的数据类型是怎样的。
<?php
$x = 666;
var_dump($x);
$x = -123; // 负数
var_dump($x);
$x = 011; // 八进制数
var_dump($x);
$x = 0x9A; // 十六进制数
var_dump($x);
?>
运行结果为:可以看出整型用 int 表示
浮点型,就是数学中说的含有小数点的小数或指数形式的数字。
<?php
$x = 11.11;
var_dump($x);
$x = 3.6e3;
var_dump($x);
$x = 2E-5;
var_dump($x);
?>
运行结果为:
<?php
$true=True;
echo $true;
$false=False;
echo $false;
?>
运行结果为:如下测试,如果是 false值,是不会有输出的。
从上面的测试可以看出,其实true和false实际上代表的数值是1和0,所以true在输出时显示为1,但如果给一个变量赋值为1,这个变量的数据类型是整型,只有这个变量被赋值为true,这个变量的类型才是布尔类型。
以下的值,在实际代码转化成布尔类型时(如应用到if判断),它们的值会被认为是false:
(1)布尔类型的值false;
(2)整型的值0(零);
(3)浮点的值0.0(零);
(4)空白字符串('')和字符串('0');
(5)空的数组;
(6)不存在的对象或被unset的对象;
(7)特殊类型NULL;
除以上的值外,其他值包括资源都被认为是true。
5
字符串
字符串是实际应用中最广泛的一种数据类型,你在网上看到的每一个字,每一段话都是字符串。
在PHP中有三种方式定义字符串:
单引号方式
用一对单引号来声明一个字符串,如果需要在字符串中显示单引号,可以使用 转义符\ :
<?php
$single_str='在单引号内的字符串!<br>';
echo $single_str;
$single_str='在单引号内输出双引号:"在双引号里面的字符串"<br>';
echo $single_str;
$single_str='输出美元符号:$<br>';
print $single_str;
$single_str='单引号内输出单引号:\'在单引号内的字符串\'<br>';
echo $single_str;
?>
效果输出:
双引号方式
字符串还可以使用一对双引号来表示一个字符串。如果要在其中使用双引号, 使用转义符\:
<?php
$Double_str="在双引号中的字符串!<br>";
echo $Double_str;
$Double_str="双引号中直接输出单引号,'单引号中的字符串'<br>";
echo $Double_str;
$Double_str="双引号中输出双引号,使用转义符包含\"双引号中的字符串\"<br>";
echo $Double_str;
?>
效果输出:
HereDoc方式
用这个方式声明的方式,不用拼接,不需转义就能解析文本中的内容包括变量。如下面的例子返回前段的html字符串。
<?php$user="lemon黄";
$form_str = <<<FORM
<form>
<input type="text" placeholder="username" value="$user">
<input type="password" placeholder="password">
<input type="submit" value="Login">
</form>
FORM;
echo $form_str;
?>
运行效果:
使用这种方式非常简单,只需要在内容的前后分别加上开始标识符和结束标识符。
从运行结果也可以看出解析出变脸$user的值“lemon黄”。
常用的转义字符如下表:
转义字符 | 输出 |
---|---|
\n | 回车 |
\r | 回车 |
\t | 水平制表符 |
\\ | 反斜线 |
\$ | 美元符号 |
\' | 单引号 |
\" | 双引号 |
例:
<?php
echo "\$"." "."\""." "."\'"; // 输出 $ " '
?>
运行结果:
资源在这里先简单说明一下,以后用到再详细说明。
资源,是一种特殊的数据类型,并由程序员分配。需要注意的是在使用资源时,要及时地释放不需要的资源。如忘记释放资源,系统会自动启用垃圾回收机制,避免内存消耗殆尽。
在PHP中,资源可以是数据库连接、打开文件、图形画布区域等类型。资源类型其实仅仅是一个整数,而内核可以根据这个整数值去一个类似资源池的地方寻找最终需要的数据。
<?php
$x="Lemon Huang!";
$x=null;
var_dump($x);
?>
运行结果为:
转换函数 | 转换类型 |
---|---|
(boolean) | 转换成布尔型 |
(string) | 转换成字符串型 |
(integer) | 转换成整型 |
(float) | 转换成浮点型 |
(array) | 转换成数组 |
(object) | 转换成对象 |
例子:
<?php
$text = "PHP很好学";
echo "原本的字符串(string):".$text;
echo "<br>";
echo "转换成布尔型(boolean):".(boolean)$text;
echo "<br>";
echo "转换成整型(integer):".(integer)$text;
?>
运行结果为: