基本类型
- 整型(integer)
用来存放整数,PHP_INT_MAX获取整型最大值
php支持8,10,16进制整数
<?php
$num1=10; //十进制
$num2=010; //八进制
$num3=0x10; //十六进制
echo $num1,'<br>'; //10
echo $num2,'<br>'; //8
echo $num3,'<br>'; //16
?>
进制转换
列题
PHP提供了进制转换函数
<?php
echo decbin(123),'<br>'; //十进制转二进制
echo bindec(10101010),'<br>'; //二进制转十进制
echo dechex(123),'<br>'; //十进制转1十六进制
echo hexdec('7b'),'<br>'; //十六进制转十进制
echo decoct(123); //十进制转八进制
?>
- 浮点型(float)
浮点型在内存中保存的是近似值浮点数不能参与比较
如果浮点数要比较,必须确定比较的位数
<?php
var_dump(0.9==(1-0.1)); //bool(true)
echo '<br>';
var_dump(0.1==(1-0.9)); //bool(fales)
echo '<br>';
var_dump(bccomp(0.1,1-0.9,5)); //比较小数点后面5位 int(0)表示相等
?>
提醒:如果一个整数超出了整型的范围,会自动转成浮点型
- 布尔型(boolean)
<?php
var_dump ((bool) "" ); // bool(false)
var_dump ((bool) 1 ); // bool(true)
var_dump ((bool) - 2 ); // bool(true)
var_dump ((bool) "foo" ); // bool(true)
var_dump ((bool) 2.3e5 ); // bool(true)
var_dump ((bool) array( 12 )); // bool(true)
var_dump ((bool) array()); // bool(false)
var_dump ((bool) "false" ); // bool(true)
?>
- 字符串型
在PHP中单引号字符串和双引号字符串是有区别的
单引号字符串是真正的字符串
双引号字符串要解析字符串中的变量
列题:
<?php
$name='TOc';
echo '我的名字叫$name','<br>'; //我的名字叫$name
echo "我的名字叫$name",'<br>'; //我的名字叫Toc
echo "$name是我的名字",'<br>'; //报错
//{}表示获取变量的值
echo "{
$name}是我的名字",'<br>';//Toc是我的名字
?>
输出特殊字符
<?php
echo '他说:\'你好!\''; //使用转义字符 (\)
?>
字符串定界符
<?php
echo <<<str
要输出的字符串
str;
?>
复合类型
- 数组
在PHP中数组有两种形式,索引数组和关联数组
- 索引数组:用整数做下标,默认从0开始,后面依次加一
- 关联数组: 用字符串做下标,通过=>符号将下标和值关联起来
<?php
//1.数组的声明
$stu=array('tom','berry','ketty');
print_r($stu); //输出整个数组,使用print_r
echo '<hr>';
echo $stu[0],'<br>'; //echo只能输出单个数组
echo $stu[1],'<br>';
echo $stu[2],'<br>';
//2.关联数组
$emp=array('name'=>'李白','sex'=>'男','age'=>18);
print_r($emp);
echo '<hr>';
echo $emp['name'],'<br>';
echo $emp['sex'],'<br>';
echo $emp['age'];
?>
输出结果
练习:写出数组的下标
<?php
$array=array(1=>'a','b','c','d');
print_r($array); //Array ( [1] => a [2] => b [3] => c [4] => d )
echo '<br>';
$array=array('a',2=>'b','c',5=>'d');
print_r($array); //Array ( [0] => a [2] => b [3] => c [5] => d )
echo '<br>';
$array=array('a','name'=>'b','c',5=>'d');
print_r($array); //Array ( [0] => a [name] => b [1] => c [5] => d )
echo '<br>';
$array=array(1=>'a',1=>'b',1=>'c','d');
print_r($array); //Array ( [1] => c [2] => d )
?>
短数组语法
$stu=['tom','berry','ketty'];
print_r($stu);
- 二维数组
<?php
$stu=[
['name'=>'tom','sex'=>'男','age'=>18],
['name'=>'berry','sex'=>'女','age'=>17]
];
echo '<pre>';
print_r($stu);
?>
//运行结果
Array
(
[0] => Array
(
[name] => tom
[sex] => 男
[age] => 18
)
[1] => Array
(
[name] => berry
[sex] => 女
[age] => 17
)
)
- 对象
对象在(面向对象编程)专门讲解
特殊类型
- 资源(resource)
参考PHP手册 - null
类型转换
- 自动类型转换
当提供的类型和需要的类型不一致的时候会自动转换
$num=10;
if($num){
//自动将数字转换成布尔型
echo 'aa';
}else{
echo 'bb';
}
echo '20'-10; //自动将字符串转成数字
- 强制类型转换
<?php
$num1='12';
var_dump($num1,(int)$num1,(float)$num1);//string(2) "12" int(12) float(12)
?>
其他类型和布尔之间的转换
规则:
扫描二维码关注公众号,回复:
12725343 查看本文章
- 数字转换规律:0为false,非0为true
- 字符串或数组转换规律:0和空false,否则true