三大类型:
- 标量:字符串string 整型integer 浮点型float 布尔型boolean
- 复合:数组array 对象object
- 特殊:NULL 资源resource
字符串
定义方式:
- 单引号 :不能解释变量,不能解释转义字符(可转义 \ ' ),效率更高
- 双引号 : 可以解释变量、转义字符,可使用特殊字符{}来包含变量
- heredoc和newdoc:专门定义较长较大的字符串
$str = <<< DOC
fsdfsdfsadfasdfdfs\n
dsfasdf
DOC;复制代码
newdoc就是在DOC加上单引号,DOC标识符可以任意定义。
$str = <<< 'ABC'
fsdfsdfsadfasdfdfs
dsfasdf
ABC;复制代码
heredoc可以解释变量、转义字符,newdoc都不可以,跟单双引号一样
浮点型
就是小数,注意!浮点型不能做比较运算
(0.1+0.7) == 0.8 //false;复制代码
因为计算机要转为二进制运算,十进制小数转二进制(乘以2,然后取整部分),可能丢失精度。
布尔型
只有两个值 true false 不区分大小写
true === TRUE复制代码
注意点 下面七种类型比较为false
var_dump('' == false); //truevar_dump('0' == false); //truevar_dump(0 == false); //truevar_dump(0.0 ==false); //truevar_dump(array() == false);//truevar_dump(false == false); //truevar_dump(null == false); //true
var_dump('0.0' == false); //false复制代码
数组
定义方式
$arr = [];
$arr = array();
['1','2','3'] //普通数组
[1=>'1',2=>'2',3=>'3'] //索引数组
['a' => 'aa','b'=>'bb'] //关联数组
[
['1','2','3'],
['2','3','4']
] //多维数组,数组嵌套复制代码
PHP的有超全局数组
$GLOBALS
$_COOKIE
$_SESSION
$_SERVER
$_ENV
$_FILES
$_POST
$_GET
$_REQUEST
其中
$_SERVER['SERVER_ADDR'] 服务器地址
$_SERVER['REMOTE_ADDR'] 客户端地址
$_SERVER['SERVER_PORT'] 服务器端品
$_SERVER['REMOTE_PORT'] 客户端端口
$_SERVER['REQUEST_TIME'] 请求时间
$_SERVER['SERVER_NAME'] 服务器名称
$_SERVER['QUERY_STRING'] 请求参数?后面的
$_SERVER['HTTP_REFERER'] 上一个页面的url
NULL
定义
- 直接赋值NULL
- 未赋值的变量
- unset销毁的变量