数据类型
以下两个方法可以用来判别变量的数据类型:
var_dump(变量|表达式); 函数用来查看表达式的值和归属类型
gettype(变量|表达式); 函数用来查看变量或表达式的类型
1.布尔类型 Boolean
描述:boolean是最简单值类型,用来表示表达式的真假
语法:一般使用TRUE或FALSE常量来指定布尔值,两者均不区分大小写
注意:
a.可以使用bool或boolean强制转换修饰符,对非布尔值类型的变量或表达式进行强制转换
b.当转换为布尔值类型时,以下值被认为是FALSE
布尔值FALSE本身
整型值0
空字符串,以及字符串"0"
不包括任何元素的数组
特殊类型NULL(包括尚未赋值的变量)
c.所有其它值都被认为是TRUE(包括任何资源和NAN)
强调:-1和其它非0值(无论正负)一样,被认为是TRUE
例子:
<?php
/*布尔类型*/
$bool1=true;
$bool2=false;
var_dump($bool1);//true
echo '<br>';
var_dump($bool2);//false
echo '<br>';
$bool3=(bool)0;
var_dump($bool3);//false
echo '<br>';
$bool4=(bool)'0';
var_dump($bool4);//false
echo '<br>';
?>
2.整数类型 Integer
描述:整数指的是集合z={...,-2,-1,0,1,2,...}中的某个数
语法:
a.整型值可以是十进制、二进制、八进制、十六进制,前面可以加上可选的符号(-或者+)
b.二进制表达的integer自PHP5.4.0起可用
c.要使用八进制表达,数字前面必须加上0(零)
要使用十六进制表达,数字前面必须加上0x
要使用二进制表达,数字前面必须加上0b
注意:
a.PHP7以前的版本,如果向八进制数传递了一个非法数字(即8或9),则后面其余数字会被忽略。PHP7以后会产生Parse Error错误
b.PHP中没有整除的运算。1/2产生float0.5
c.使用(int)或(integer)方法对非整型变量或表达式进行强制类型转换
强调:绝不要将未知的分数强制转换为integer,这样有时会导致不可预料的结果
例子:
<?php
$int1=10;
var_dump($int1);
echo '<br>';
$int2=0b10;
var_dump($int2);
echo '<br>';
$int3=010;
var_dump($int3);
echo '<br>';
$int4=0xff;
var_dump($int4);
echo '<br>';
?>
3.浮点类型 Float
描述:浮点类型,又被称为浮点数float或双精度数double或者实数real
语法:可以通过以下任何一种类型来定义
$a = 1.243;
$b = 1.2e3;
$c = 7E-10;
注意:
a.永远不要直接比较两个浮点数的大小,因为没有任何意义
b.如果必须比较浮点数大小,则可以采用【epsilon】机器极小值方式进行比较
c.NAN表示数字上无法用浮点数具体描述的数字和true之外的任何值进行松散或严格比较的结果都会是false
强调:由于NAN代表着任何不同值,不应拿NAN去和其它值进行比较,包括本身
4.字符串
描述:php中采用单引号或双引号来定义字符串;每一个字符等同于一个字节,因此php中只能支持256字符集,也正是因为这样,其不支持Unicode
注意:
1.php字符串中使用转义字符\来描述容易引起歧义的内容
2.php对双引号定义的字符串中的变量可以进行内容解析,而单引号则不行。
3.php中字符串拼接采用.点运算符实现!不是+加号!!!!!!!
4.php字符串允许多行定义,但会忽略多余空格和换行
例子:
<?php
$str1='my name is \'beixi\'';
echo $str1;
echo '<br>';
$age=12;
echo '我的年龄是{$age}岁';//单引号不会进行解析而是原样输出
echo '<br>';
echo "我的年龄是{$age}岁";//双引号会进行解析
echo '<br>';
$str2='我仅代表
xx
yyy
';
echo $str2;
echo '<br>';
$str3='hello';
$str4='world';
$str5=$str3.$str4;
echo $str5;
?>
5.数组
描述:php中数组实际上是一个有序映射,映射就是把keys关联到values上的类型
语法:
array(key=>value,...)
//键(key)可以是一个整数或者字符串
//值(value)可以是任意类型
自PHP5.4起,可以直接通过短数组定义方式[]来替代array()
注意:
a.php中echo仅用来输出简单值,而复杂数据类型则需要通过print_r()函数来输出
b.php中的数组实际上更相似与js的对象结构
c.php中数组的读取和赋值可以通过数组名[键名]方式来读写
d.php中数组的长度读取通过count()函数实现
e.php中数组内部添加原本不存在的key值,不会补齐之间的差值,而是仅添加当前新输入的key值。例如:$arr[100]=100;并不会为数组添加100个元素
例子:
<?php
echo '<pre>';
$arr1=array('username'=>'beixi','password'=>'123456');
$arr2=[true,12,'小明'];
print_r( $arr1);
print_r( $arr2);
$arr2[2]='zhangsan';//赋值
echo $arr2[2];//zhangsan
echo '<br>';
echo $arr1['username'];//beixi
echo '<br>';
echo count($arr1);
echo '<br>';
echo count($arr2);
echo '<br>';
print_r($arr2);
$arr2[100]='小号';
echo count($arr2);//4
echo '<br>';
print_r($arr2);
?>
6.对象Object
什么是类?什么是对象?类和对象有什么关系?
类:是一些事物具有公共特征的抽象描述。
对象:类中某一个具体存在的个体。
类是范畴,对象是其中的个体。
描述:php中想要创建一个对象,则必须通过new语句实例化一个类得到
语法:$obj = new Func;
注意:
a.php中类由class关键字声明,类名后没有小括号
b.php中类内部的方法由->箭头来调用,而不是.运算符
例子:
<?php
echo '<pre>';
class Phone{
public $phoneType='oppo';
function showInfo(){
echo '充电5分钟通话两小时';
}
}
$myPhone=new Phone; //创建对象
print_r($myPhone);
$myPhone->showInfo();//调用类中的方法
echo '<br>';
echo $myPhone->phoneType;
?>
7.空值类型
描述:NULL表示变量未被赋值的状态,NULL类型唯一可能的值就是NULL
注意:NULL值不区分大小写,NULL或null都可以
例子:
<?php
$temp=null;
var_dump($temp);
?>