3.数据类型
php字符串可以使用哪三种方式定义,以及各自的区别是什么?
定义方式
单引号
双引号
herdoc与newdoc
区别
单引号不能解析变量
单引号不能解析转义字符,只能解析单引号和反斜线本身
变量和变量,变量和字符串,字符串和字符串之间可以用.连接
双引号可以解析变量,变量可以使用特殊符号{}包含
双引号可以解析所有转义字符
也可以使用.来连接
单引号效率更高
heredoc类似于双引号
Newdoc类似于单引号
两者都用来处理大文本
heredoc
$str=<<
......
EoT
newdoc
$str=<<<’EoT’
......
EoT
数据类型
三大数据类型(标量,复合,特殊)
浮点类型
浮点类型不能用于比较运算中
$a=0.1;
$b=0.7;
If($a+$b==0.8){
False=0.7999
}
因为浮点型相加会转换为二进制,消耗内存。所以返回false
布尔类型
False的7种情况
0,0.0,’’,’0’,false,array(),NULL
整型0,浮点0,布尔false,空字符串,0字符串,空数组,NULL
数组类型
超全局数据
$GLOBALS,$_GET,$_POST,$_REQUEST,$_SESSION,$_COOKIE,$_SERVER,$_FILES,$_ENV
注意:
$GLOBALS包含后面所有的内容
$_REQUEST包含$_GET,$_POST,$_COOKIE
$_REQUEST尽量少用,相当于万能钥匙,安全性低
$_SERVER[‘SERVER_ADDR’] 服务器ip
$_SERVER[‘SERVER_NAME’] 服务器名称
$_SERVER[‘REQUEST_TIME’]启动时间
$_SERVER[‘QUERY_STRING’] 问号后面的一大串,有可能为空
$_SERVER[‘HTTP_REFERER’]上级请求的页面,可能为空,用于开发
$_SERVER[‘HTTP_USER_AGENT’]头信息中的USER_AGENT信息
$_SERVER[‘REMOTE_ADDR’] 客户端ip
$_SERVER[‘REQUEST_URI’]请求index.php,URI就是/index.php
$_SERVER[‘PATH_INFO’]处理路由,抓url地址中路径的部分
NULL
三种情况
直接赋值为NULL,未定义的变量,unset销毁的变量
常量
定义:
const 语言结构
define 函数
const更快,是语言结构,define是函数
define不能用于类常量的定义,const可以
常量一经定义,不能被修改,不能被删除
预定义常量(php系统中)
__FILE__ 所在文件的文件路径和文件名称
__LINE__ 所在行的行号
__DIR__ 所在目录
__FUNCTION__ 所在函数体的函数名称
__CLASS__ 类名
__TRAIT__ 5.4的特性,trait的名称
__METHOD__ 返回类名+方法名
__NAMESPACE__ 返回NAMESPACE名称
题目
用PHP写出显示客户端IP与服务器IP的代码
__FILE__表示什么意思
��vĜ����