本文是温习所写,并不会涵盖一些根底知识点
PHP 中总共是 4 中标量类型、4 种复合类型、2 种非凡类型
标量类型
- bool
-
int
GMP, GNU Multiple Precision, 用于解决任意长度整数
BC Math, 任意精度数学, 提供了加、减、乘、除、余等操作函数
-
float
<?php $a = 1.23; $b = 1.2e3; $c = 7E-10; $d = 1_324.33; // 从 PHP7.4.0 开始反对
浮点运算可能会产生
NAN
, 不代表任何值,所以不能跟任何值比拟,包含本身。基于此 PHP 专门提供了is_nan()
函数来查看是否是 NAN浮点数比拟得话有两种形式:
<?php // 第一种, 应用 BC Math 函数 举荐 $a = 231.222; $b = 231.22222; bccomp($a, $b); // 第二种, 与机器极小值比拟 $epsilon = 0.0001; if (abs($a-$b) < $epsilon) {echo '两数相等';}
-
string
<?php /* * 单引号 * 最污浊的 string, 不会解析变量与特殊字符 * ' \ 在单引号 string 中有特殊作用,要想输入这两个字符须要在后面用 \ 本义一下 */ $a = '字符串'; $b = '字 \' 符串 '; $c = '字符 \\ 串'; /* * 双引号 * 最重要的就是会解析变量 */ $d = "这是双引号{$a}"; /* * Heredoc 构造 * 以 <<< 加标识符换行开始,换行以标识符完结. 结尾标识符双单引号可省略 * 规定跟双引号字符串统一 */ $g = 'c'; $e = <<<"Eof" 这是 Heredoc{$a} 这是 Heredoc${$g} Eof; /* * Nowdoc 构造 * 以 <<< 加标识符换行开始,换行以标识符完结. 结尾标识符必须应用单引号 * 规定跟单引号字符串统一 */ $f = <<<'Eof' 这是 Nowdoc 字符串 Eof;
PHP 并没有明确指明 string 的编码,因而 string 会被依照源码文件的编码来编码, 举荐应用
UTF8-BOM
编码对于多字节字符串须要应用多字节字符串函数来解决,即
mb_
结尾的函数字符串能够通过下标来操作
复合类型
-
array
PHP 中的 array 实际上是一个有序映射. 它能够被视为数组、列表(向量)、哈希表、字典、汇合、堆栈、队列等
array_merge($arr1, $arr2)
同名字符串 key $arr2 将会笼罩 $arr1;$arr1+$arr2
同名字符串 key $arr1 笼罩 $arr2纯数字 key 数组合并会重建索引,字符串数字混合 key 则不会
- object
- callable
-
iterable PHP7.1 新增
指的是 array 或实现了
Traversable
接口的对象, 标识是能够应用 foreach 迭代应用 array、实现 Traversable 接口、生成器都可创立可迭代对象
非凡类型
- resource
- null
PHP 是动静类型语言,所以变量类型是在运行时依据上下文决定的。当然也能够通过显示 / 隐式的形式转换数据类型