变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据以及在计算机内存的存储方式
一 PHP数据类型有一下几种:
Integer(整型),String(字符串), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)
1 整型(Integer)
必须至少有一个数字 (0-9)
不能包含逗号或空格
没有小数点的
可以是正数或负数
可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)
<?php
$data = 2020;
var_dump($data); //var_dump()可以打印出数据类型和值
echo "<br>";
$data = -179; // 负数 var_dump($data);
echo "<br>";
$data = 0x8d; // 十六进制数
var_dump($data);
echo "<br>";
$data = 047; // 八进制数
var_dump($data);
?>
2 字符串(string)
字符串是一系列字符的合集,字符串需要用单引号或者双引号包含起来
<?php
$php = "PHP是世界上最好的语言";
$name = 'David';
var_dump($name); //var_dump()可以打印出数据类型和值
?>
注意:PHP字符串类型单引号和双引号一般情况下是通用的,但是有些场景下二者还是略有区别的
① 双引号字符串内的变量会被解析,而单引号则直接认为是普通字符串不去解析
<?php
$php = "PHP";
$text = "世界上最好的语言是$php";
$text_1 = '世界上最好的语言是$php';
echo $text."<BR>";
echo $text_1;
?>
程序运行结果是:世界上最好的语言是PHP 世界上最好的语言是$php
总结:双引号中的变量($var)和转义字符(rn之类)会被解析单引号则不会,所以单引号运算速度更快
3 浮点型(Float)
浮点数是有小数点或指数形式的数字
<?php
$x = 10.12;
var_dump($x); //var_dump()可以打印出数据类型和值
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
?>
4 布尔值(Boolean)
布尔型是 TRUE 或 FALSE,一般用于条件判断
<?php
$lean = true;
if($lean)
echo "true";
?>
5 数组(Array)
数组是一个复合数据类型可以在一个变量中存储多个值,数组分为“索引数组”和“关联数组”,在PHP中数组的使用比较灵活
PHP中数组的声明可以用array()函数,PHP5.4以后也可以用[]来声明
<?php
$name = array("张三","李四","王五"); //索引数组
$name = ["A"=>"张三","B"=>"李四","C"=>"王五"]; //关联数组
?>
关联数组和索引数组的区别在于键名,索引数组的键名是数字从0开始递增,关联数组的键名是字符串,只要数组中的键名有一个不是数字,这个数组就是关联数组,而且要给这个键名加上单引号或者双引号,索引数组不必加上单双引号,加上也是可以的
6 空值(NULL)
NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。
NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别
可以通过设置变量值为 NULL 来清空变量数据
<?php
$php = "PHP是世界上最好的语言";
$PHP = null;
var_dump($php);
?>
程序输出结果为:null
注意:unset()和null还是有区别的:
unset()是删除变量,而null仅仅是把变量赋值为null
7 数据类型的转换
PHP数据类型有三种转换方式:
在要转换的变量之前加上用括号括起来的目标类型
使用3个具体类型的转换函数,intval()、floatval()、strval()
使用通用类型转换函数 settype(mixed var,string type)
一 第一种转换方式: (int) (bool)(float) (string)(array)(object)
<?php
$num2=(int)$num1;
?>
二 第二种转换方式: intval() floatval() strval()
<?php
$str = "12349";
$int=intval($str); // 字符串转换为整型
$float=floatval($str); // 字符串转换为浮点型
$str=strval($float); // 浮点型转换为字符串
?>
三 第三种转换方式: settype();
<?php
$num4=12.8;
$flg=settype($num4,"int");
var_dump($flg); //输出bool(true)
var_dump($num4); //输出int(12)
?>
8 对象(Object)
这个目前不讲
9 数据类型比较
尽管PHP是弱类型语言,但也需要明白变量类型及它们的意义,因为我们经常需要对 PHP 变量进行比较,包含松散和严格比较。
① 松散比较:使用两个等号 == 比较,只比较值,不比较类型。
② 严格比较:用三个等号 === 比较,除了比较值,也比较类型。
例如,"1" 是一个字符串而 1 是一个整数
FALSE 是一个布尔值而 "false" 是一个字符串
<?php
if(100 == "100")
echo "值相等"."<BR>";
if(100 === "100")
echo "类型与值相等";
else
echo "类型不想等";
?>
PHP中 0 FALSE FULL的比较
<?php
var_dump(0 == false); //结果:true
var_dump(0 === false); //结果:false
var_dump(0 == null); //结果:true
var_dump(0 === null); //结果:false
var_dump(false == null); //结果:true
var_dump(false === null); //结果:false
var_dump("0" == false); //结果:true
var_dump("0" === false); //结果:false
var_dump("0" == null); //结果:false
var_dump("0" === null); //结果:false
var_dump("" == false); //结果:true
var_dump("" === false); //结果:false
var_dump("" == null); //结果:true
var_dump("" === null); //结果:false
?>
下一期 PHP常量