PHP字符串的定义方式及各自区别
定义方式:
单引号
双引号
heredoc 和newdoc
区别
单引号不能解析变量
单引号不能解析转义字符,只能解析单引号和反斜线本身
变量和变量、变量和字符串、字符串和字符串之间可以用.连接
区别
双引号可以解析变量,变量可以使用特殊字符和{}包含
双引号可以解析所有转义字符
也可以使用.来连接
区别
单引号效率更高
$str = 'abcdef$ag'; //abcdef$ag
$str = "abcdef'{$a}'gh";//abcdef$a的值gh
$sql = "SELECT * FROM user WHERE name = 'Lisi'";
$sql = "SELECT * FROM user WHERE name = '$name'";
$sql = 'SELECT * FROM user WHERE name = \''.$name.'\'';
区别
Heredoc 类似于双引号
Newdoc 类似于单引号
两者都用来处理大文本
$str = <<<EoT
这里是各种string,$a
等等,最后结尾名要与开始名相同
EoT
$str = <<<'EoT' //加了单引号类似单引号
这里是各种string,$a
等等,最后结尾名要与开始名相同
EoT
数据类型
三大数据类型(标量、复合、特殊)
标量 integer,float, string,boolen
复合 array,object
特殊 null,resource
浮点类型
浮点类型不能运用到比较运算中
$a = 0.1;
$b = 0.7;
$a + $b = 0.7999//二进制转化损耗
布尔类型
FALSE 的七种情况
整形0,浮点0.0,布尔false,空字符串,0字符串,空数组,NULL
0
0.0
''
'0'
false
array()
NULL
数组类型
超全局数组
$GLOBALS,$_GET,$_POST,$_REQUEST,$_SESSION,$_COOKIE,$_SERVER,$_FILES,$_ENV
$GLOBALS:$_GET,$_POST,$_REQUEST,$_SESSION,$_COOKIE,$_SERVER,$_FILES,$_ENV
$_REQUEST:$_GET,$_POST,$_COOKIE
$_SERVER
$_SERVER['SERVER_ADDR']//服务器端ip地址
$_SERVER['SERVER_NAME']//服务器名称
$_SERVER['SERVER_TIME']//请求时间
$_SERVER['QUERY_STRING']//?后面一大串
$_SERVER['HTTP_REFERER']//上级请求页面
$_SERVER['HTTP_USER_AGENT']//头信息
$_SERVER['REMOTE_ADDR']//客户端IP地址
$_SERVER['REQUEST_URI']//脚本名称比如: /index.php
$_SERVER['PATH_INFO']//路由,url中路径部分
ex.
http:www.agegg.com/index.php/use/reg?status=ghost
status=ghost //$_SERVER['QUERY_STRING']
use/reg //$_SERVER['PATH_INFO']
NULL
三种情况
直接赋值为NULL、未定义的变量、unset销毁的变量
常量
定义
const、define
const更快,是语言结构,define是函数
define不能用于类常量的定义,const可以
常量一经定义,不能被修改,不能被删除
预定义常量
__FILE__//文件路径名和文件名称
__LINE__//所在行号
__DIR__//所在目录
__FUNCTION__//所在函数的函数名称
__CLASS__//类名
__TRAIT__
__METHOD__//类名+方法名
__NAMESPACE__//命名空间名称










网友评论