-
标量类型:
- 标量类型也可以理解为“基本类型”,“简单类型”
- 标量类型包括如下4种:
- 字符串类型: string 就是一串字符,当做一个整体,表示一个连续有确定顺序的字符串。
- 整数类型: integer,int
- 浮点数: double,float 就是数学上的小数。
- 布尔类型: boolean,bool 表示某种只有两个状态(可能值)的数据,比如性别,是否毕业,吃没吃饭;
-
复合类型
就是"数组"(array) 和 "对象"(object) 两种 -
特殊类型
- 空类型 null:对象是空的
- 资源类型 resource:表示一种外部的可供php使用(操作) 的资源(比如图片,数据库,文件等)
-
整数
可以有4种直接书写的形式:
- 10进制形式:$n1= 123;
- 8进制形式:$n1 = 0123; // 以0开头,只能出现0-7这8个数字
- 16进制形式: $n1 = 0x12A34; // 以0x开头,可以出现0-9,A-F 这16个数字
- 2进制形式: $n1 = 0b1011011010; // 以 0b开头,只能出现0和1这2个数字
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<?php
$n1 = 123;
$n2 = 0123;
$n3 = 0x123;
$n4 = 0b1010;
echo $n1;
echo '<br>'.$n2;
echo '<br>'.$n3;
echo '<br>'.$n4;
?>
</body>
</html>
-
进制的互相转换
直接通过系统函数来进行,能完成:
-
10进制转为2, 8, 16进制:
decbin():将10进制转为2进制
decoct():将10进制转为8进制
dechex():将10进制转为16进制 -
2, 8, 16进制转为10 进制:
bindec():将2进制数字字符串转为10进制
octdec():将8进制数字字符串转为10进制
hexdec():将16进制数字字符串转为10 进制
-
-
浮点数
- 浮点数就是相当于数学上的“小数”
- 两种书写形式:
常规形式(带小数点) :$f1 =0.1; // 或者1.23; 123.0;
科学计数法形式(带e) :
$f2 = 1.23e3; // 表示1.23 乘以10的3次方
$f3 = 123e2; // 这个也是浮点数,虽然其结果值是一个“整数”(12300)
- 字符串
- 使用单引号或双引号来表示(引起来)的就是字符串。
- 特别注意: .
双引号字符串中,如果出现“$”符号,则该符号后的连续字符(单词)会被识别为一个变量名。
双引号中会识别变量或对象,单引号则不会做识别处理。
如果识别成功( 即确实存在该变量),则会将该变量转换为实际内容。
如果识别失败( 即实际没有该变量),则会报错。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<?php
$n1 = 10;
echo '单引号n1的值为:', $n1;
echo '<br>单引号n1的值为:$n1';
echo "<br>双引号n1的值为:$n1";
?>
</body>
</html>
-
但是双引号还有个识别的大坑:
我们把 $n1 写在最前面,但是它会把 $ 符号以后的都当做是一个对象,但是我们可以通过添加转义符 \ 来处理
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<?php
$n1 = 10;
echo '单引号n1的值为:', $n1;
echo '<br>单引号n1的值为:$n1';
echo "<br>双引号n1的值为:$n1";
echo "<br>双引号n1的值为:$n1";
echo "<br>$n1双引号n1的值为:$n1";
echo "<br>\$n1双引号n1的值为:$n1";
?>
</body>
</html>
它会高亮起来当做对象检测的,一运行就会报错:
网友评论