PHP的八种数据类型
PHP中变量的数据类型通常不是由程序员设定的,准确的说,是PHP根据该变量使用的上下文在运行时决定的,简单的说就是,我们不需要设定变量的数据类型,PHP会自动识别。
四种标量数据类型
boolean(布尔型)
也叫bool型,只有两种值,true或者是false,它不区分大小写
string(字符串型)
字符串是连续的字符序列,由数字,字母和符号组成。
integer(整型)
整型就是我们常说的整数,它只能是整数
float(浮点型)
浮点数据类型就是我们常见的小数,它既可以用来存储整数,也可以存储小数。
两种复合数据类型
array(数组)
数组是一组数据的组合,它把一系列的数组组合起来,形成一个可操作的整体。
object(对象)
对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。
两种特殊类型
resource(资源)
资源是一种特殊的变量类型,保存了到外部资源的一个引用:如打开文件、数据库连接、图形画布区域等。
空值(null)
空值,在名字上来看它就是没有值,它表示没有为该变量设置任何值。
php:布尔型(boolean)数据类型实例详解
只能保存两个值true值和false值。它不区分大小写,所以true写成TRUE是一样的。
<?php $boo = true; if($boo == true){ echo '真'; }else{ echo '假'; }
代码运行结果:真
注意:在PHP中不是只有boolean值为假,在一些特殊情况下非boolean值也被认为是假。
这些特殊情况为:0,0.0,“0”,空白字符串(“”),只声明没有赋值的数组等。
php:字符串(string)数据类型实例详解
在PHP中,有三种定义字符串的方式,分别是单引号('),双引号(“)和定界符(<<<)。
单引号和双引号的不同之处就在双引号所包含的变量会自动的被替换成实际数值,而单引号所包含的的变量则按普通的字符创输出,这段换什么意思呢,我们下面来一下示例
单引号和双引号定义字符串不同之处的示例
<?php $i = 'cyy'; echo "$i"; echo "<p>"; echo '$i';
示例运行结果如下图:
除了上面的不同点之外,再有就是两者对转义字符的使用不同。使用单引号时,只要对单引号“ ' ”进行转义即可,但使用双引号(")时,还要注意“ " ”、“$”等字符的使用,这些特殊字符都要通过转义符“”来显示,常用的转义字符如下表:
这里有一点要注意的是, 和 在Windows系统中没有什么区别,都可以当作回车符。但是在Linux系统中则是两种效果,在Linux中, 表示换到下一行,却不会回到行首;而 表示光标回到行首,但仍然在本行,如果有使用Linux操作系统的,可以尝试一下。
在定义一些简单的字符串时,使用单引号是一个更好的处理方式。如果使用双引号,PHP将花费一些时间来处理字符串的转移和变量的解析,因此,在定义字符串时,如果没有特别的要求,我们最好使用单引号
界定符示例
代码如下:
<?php $i = 'cyy'; echo <<<std 这和双引号效果相同,可以输出$i<br> $i的值为: $i std ?>
代码运行结果:
结束标识符必须单独另起一行,并且不允许有空格。在标识符前后有其他字符或符号,也会发生系统错误,包括注释。
php:整型(integer)数据类型实例详解
什么是整型数据类型
整型数据类型就是我们常说的整数,它只能是整数,像123456,或者-123456,这都代表整型,这些是十进制的,还可以写八进制的,十六进制的。如果使用八进制表示,数字前面必须加0,如果用十六进制,需要加0x.
整型是要有一个有效范围的,有效范围是-2447483648~+2147483647
既然有存储范围了,那我们现在说两个整型相加一定等于整型吗?不一定,因为超过了整型的存储范围呢会产生一种现象,叫做溢出的现象,当给定的数值超出了int型所能表达的最大范围时,将会被当做float型处理,浮点类型它的存储范围比整型大。
如果在八进制中出现了非法数字(8和9),则后面的数字会被忽略掉。(最新测试页面似乎停止运行了)
php:浮点型(float)数据类型实例详解
浮点型的有效范围是1.8E-308~1.8E+308。
浮点型数据默认有两种书写格式,一种标准格式,如下
3.1415 -35.8
还有一种科学记数法格式
3.14*10^3 可以使用3.14e3来表示
浮点(float)数据类型示例
在下面的例子中,我们将测试不同的数字。PHP var_dump() 会返回变量的数据类型和值:
<?php $x = 10.3605; var_dump($x); echo '<br>'; $x = 2.4e3; var_dump($x); echo '<br>'; $x = 8E-5; var_dump($x); echo '<br>';
代码运行结果:
浮点型的数据只是一个近似的值,所以要尽量避免浮点型数值之间的比较大小,因为最后的结果都是不准确的。像下面这样
<?php $a = 0.1; $b = 0.7; if(($a+$b) == 0.8){ echo 'true'; }else{ echo 'false'; }
代码运行的结果:false
php:数组(array)数据类型实例详解
数组的定义示例
<?php $arr1 = array('a','b'); $arr2 = array(0=>'a',1=>'b'); $arr3 = ['a','b']; $arr4[0] = 'a';
数组中的元素个数是可以更改的,只要给数组赋值,数组就会自动增加长度。
php:对象(object)数据类型实例详解
如果要在定义的类里面访问成员的属性或者方法,可以使用伪变量 $this 。$this 用于表示 当前对象 或 对象本身 。
例子:
<?php header("content-type:text/html;charset=utf-8"); class Person { //人的成员属性 var $name; //人的名字 var $age; //人的年龄 //人的成员 say() 方法 function say() { echo "我的名字叫:".$this->name."<br />"; echo "我的年龄是:".$this->age; } } //类定义结束 //实例化一个对象 $p1 = new Person(); //给 $p1 对象属性赋值 $p1->name = "cyy"; $p1->age = 25; //调用对象中的 say()方法 $p1->say();
运行该例子,输出:
我的名字叫:cyy
我的年龄是:25
php:资源(resource)数据类型实例详解
什么是资源数据类型?
资源数据类型是PHP4引进的。资源是一种特殊的变量类型,保存了到外部资源的一个引用:如打开文件、数据库连接、图形画布区域等。
资源是通过专门的函数来建立和使用的。
资源变量在PHP中的使用
<?php header("content-type:text/html;charset=utf-8"); $fp = fopen('index_ok.php','rw'); var_dump($fp); fclose($fp);
打印结果:
php:空值(null)数据类型实例详解
空值(null)是不区别大小写的,也就是null与NULL或Null是一样的。
在PHP中被赋予空值的情况有三种:
第一种:
尚未被赋值
<?php $a; var_dump($a); ?>
第二种:
被赋值为 NULL。
<?php $nu=null; var_dump($nu); ?>
第三种:
被unset()函数处理过的变量
<?php $name = 'Felipe'; var_dump((unset) $name); ?>
is_null函数用来判断变量是否为null,这个函数是返回一个boolean型,如果变量为null,则返回true,否则返回false。unset()函数是用来销毁变量。
php数据类型转换实例详解
PHP中的类型转换非常简单,有三种转换方法:
第一种:
只需要在要转换的变量之前加上用括号括起来的类型名称即可,像下面这样
<?php $num1 = 3.14; $num2 = (int)$num1; var_dump($num1); echo '<br>'; var_dump($num2);
代码运行结果:
第二种:
使用3个具体类型的转换函数,intval()、floatval()、strval()
<?php $num = '123.9abc'; $num2 = intval($num); var_dump($num2); echo '<br>'; $num2 = floatval($num); var_dump($num2); echo '<br>'; $num2 = strval($num); var_dump($num2);
代码运行结果:
第三种:
使用settype()函数,该函数可以将指定的变量转换成指定的数据类型,参数var为指定的变量;参数type为指定的数据类型。参数type有7个可选值,即boolean,float,integer,array,null,object和string,如果转换成功setype()函数返回true,否则返回false。如下:
<?php $num = '123.9'; $res = settype($num,'int'); var_dump($res); echo '<br>'; var_dump($num);
代码运行结果:
当字符串转换为整型或浮点型时,如果字符串是以数字开头的,就会先把数字部分转换为整型,在舍去后面的字符串;如果数字中含有小数点,则会取到小数前一位。
PHP数据类型转换实例
本实例将使用第一种和第三种两种方法将指定的字符串进行类型转换,比较两种方法之间的不同,代码如下:
<?php $num = '3.1415926r*r'; echo (integer)$num.'<br>'; echo $num.'<br>'; echo settype($num,'integer').'<br>'; echo $num;
代码运行结果:
从上面的的实例可以看到,使用integer操作符能直接输出转换后的变量类型,并且原变量不发生任何变化。而是用settype()函数返回的是1,也就是true,原变量就改变了,在实际应用中,可根据自己的需求选择转换方式。
PHP数据类型检测实例详解
PHP检测数据类型的函数如下表
PHP数据类型检测实例
PHP检测数据类型的函数功能和用法都是相同的,我们下面的实例使用is_numeric()函数来检测变量中的数据是否是数字。
<?php $num = '3.1415926'; if(is_numeric($num)){ echo '是数字类型'; }else{ echo '不是数字类型'; }
欢迎QQ沟通讨论:965794175