1、php中的字符串可以使用的三种定义方法及其区别:
定义方式:单引号,双引号,heredoc和newdoc
区别:
(1)单引号不能解析变量
(2)单引号不能解析转义字符,只能解析单引号和反斜线本身
(3)单引号效率更高
(4)变量和变量,变量和字符串,字符串和字符串之间可以用 . 连接
(5)双引号可以使用特殊字符和 { } 包含
(6)双引号可以解析所有转义字符
<?php header("content-type:text/html;charset=utf-8"); $a = 1; $str = 'abcdeg$ag'; echo $str; //输出结果:abcdeg$ag echo "</br>"; $str ="abcdeg{$a}g"; echo $str; //输出结果:abcdeg1g
我们在写sql语句时,经常会用到引号
$sql = "SELECT * FROM user WHERE name = '$name'"; $sql = 'SELECT * FROM user WHERE name = \' '.$name.'\'';//为了提高效率,会用到单引号
Heredoc 结构就像是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义。其结构中的变量将被替换,但在 heredoc 结构中含有复杂的变量时要格外小心。其对格式化输出内容时,比较有用 。具体其有以下特点:
(1)开始标记和结束标记使用相同的字符串,通常以大写字母EOT来写。
(2)开始标记后不能出现空格或多余的字符。
(3)结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。
(4)位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接 。
例:
$name='小林子'; $content=<<<EOF {$name}奋斗的点滴!!! EOF; echo $content; //输出结果:小林子奋斗的点滴!!!
在 PHP 5.3.0 及其以后的版本中增加了nowdoc结构,其用法和heredoc相同,不同的是Nowdoc 结构是类似于单引号字符串的。nowdoc 中不进行解析操作。这种结构很适合用于嵌入 PHP 代码或其它大段文本而无需对其中的特殊字符进行转义。
一个 nowdoc 结构也用和 heredoc结构一样的标记 <<<, 但是跟在后面的标识符要用单引号括起来,即 <<<'EOT'。
例:
$name='小林子'; $content=<<<'EOF' {$name}奋斗的点滴!!! EOF; echo $content; //输出:{$name}奋斗的点滴!!!
2、三大数据类型
(1)浮点类型:浮点类型不能用于比较运算中
(2)布尔类型:
FALSE的七种情况:0,0.0,‘’,‘0’,flase,array(),null
(3)数组类型:
超全局数组:
$_GET[] 获得以GET方法提交的变量数组
$_POST[] 获得以POST方法提交的变量数组
$_COOKIE[] 获取和设置当前网站的Cookie标识
$_SESSION[] 取得当前用户访问的唯一标识,以数组形式体现,如sessionid以及自定义session数据
$_ENV[] 当前php环境变量数组
$_SERVER[] 当前php服务器变量数组
$_FILES[] 上传文件时提交到当前脚本的参数值,以数组形式体现
$_REQUEST[] 包含当前脚本提交的全部请求,$_GET、$_POST、$_COOKIE的所有动作
$GLOBALS[] 包含正在执行脚本所有超级全局变量的引用内容
$_SERVER[] 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。
① $_SERVER['HTTP_HOST'] 请求头信息中的Host内容,获取当前域名。
② $_SERVER["SERVER_NAME"] 输出配置文件httpd.conf中的ServerName,一般情况下与HTTP_HOST值相同。
③ $_SERVER["HTTP_USER_AGENT"] 获取用户相关信息,包括用户浏览器、操作系统等信息。
④ $_SERVER["HTTP_COOKIE"] 浏览器的cookie信息
⑤ $_SERVER["PATH"] 当前脚本所在文件系统。
⑥ $_SERVER["SERVER_ADDR"] 当前运行脚本的服务器的ip地址。
⑦ $_SERVER["SERVER_PORT"] 服务器端口。
⑧ $_SERVER["REMOTE_ADDR"] 浏览网页的用户ip。
⑨ $_SERVER["DOCUMENT_ROOT"] 当前运行脚本所在的根目录。
⑩ $_SERVER["SCRIPT_FILENAME"] 当前执行脚本的绝对路径。
⑪ $_SERVER ["REMOTE_PORT"] 用户连接到服务器时所使用的端口。
⑫ $_SERVER["REQUEST_METHOD"] 请求提交数据的方式。
⑬ $_SERVER["QUERY_STRING"] 服务器请求时?后面的参数。
⑭ $_SERVER["REQUEST_URI"] 当前脚本路径,根目录之后的目录。
⑮ $_SERVER["SCRIPT_NAME"] 当前脚本的路径。这在页面需要指向自己时非常有用。
⑯ $_SERVER["PHP_SELF"] 当前正在执行脚本的文件名。
⑰ $_SERVER["REQUEST_TIME"] 得到请求开始时的时间戳。
(4)NULL的三种情况:
① 直接赋值为null
② 未定义变量
③ unset()销毁的变量
(5)常量
定义方式:const、define
const更快,是语言结构,define是函数,同时,define不能用于类常量的定义,而const可以。
常量一经定义,不能修改,不能被删除
预定义常量:
__FILE__
当前PHP程序脚本的绝对路径及文件名称
__LINE__
存储该常量所在的行号
__DIR__
当前PHP程序脚本的目录
__FUNCTION__
存储该常量所在的函数名称
__CLASS__
存储该常量所在的类的名称
__METHOD__
存储该常量所在的类的方法的名称
__NAMESPACE__
namespace名称