真题
PHP中字符串可以使用哪三种定义方法以及各自的区别
考点
PHP中字符串的定义方法以及各自的区别
定义方法
单引号
双引号
heredoc和newdoc
单双引号区别
单引号不能解析变量
单引号不能解析转义字符,只能解析单引号和反斜线本身
变量和变量、变量和字符串、字符串和字符串之间用.连接
双引号可以解析变量,变量可以使用特殊字符和{}包含
双引号可以解析所有转义字符
双引号也可以用.连接
单引号效果更高
<?php
$a = 1;
$str = 'a b c d e f $a g';
echo $str . "<br>"; //a b c d e f $a g
$str2 = "a b c d e f '$a' g";
echo $str2 . "<br>"; //a b c d e f '1' g
$str2 = "a b c d e f '&$a&' g";
echo $str2 . "<br>"; //a b c d e f '&1&' g
$str2 = "a b c d e f '{$a}' g";
echo $str2 . "<br>"; //a b c d e f '1' g
heredoc定义

newdoc定义

heredoc和newdoc区别
heredoc类似于双引号
newdoc类似于单引号
两者都是用来处理大文本
延伸
数据类型及常量
数据类型
三大数据类型(标点、复合、特殊)
浮点类型
浮点类型不能用于比较运算符(相等比较)
cpu在计算时,是把代码转成二进制010101这种格式进行计算,浮点数在进行计算时会有损耗。
<?php
$a = 0.1;
$b = 0.7;
if($a + $b == 0.8) {
echo '123';
}
//$a + $b => 0.7999
布尔类型
FALSE的7种情况
0
0.0
’ ’
‘0’
false
array()
NULL
数组类型
超全局数组
$GLOBALS
$_GET
$_POST
$_REQUEST
$_SESSION
$_COOKIE
$_SERVER
$_FILES
$_ENV
$GLOBALS包含了其他的超全局数据,$_SESSION包含了$_GET、$_POST、$_COOKIE
$_SERVER常考点
<?php
$_SERVER['SERVER_ADDR']; //当前运行脚本所在的服务器的 IP 地址
$_SERVER['SERVER_NAME']; //当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。
$_SERVER['REQUEST_TIME']; //请求开始时的时间戳
$_SERVER['QUERY_STRING']; //query string(查询字符串),如果有的话,通过它进行页面访问
$_SERVER['HTTP_REFERER']; //引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信
$_SERVER['HTTP_USER_AGENT']; //当前请求头中 User-Agent: 项的内容,如果存在的话。该字符串表明了访问该页面的用户代理的信息。一个典型的例子是:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。除此之外,你可以通过 get_browser() 来使用该值,从而定制页面输出以便适应用户代理的性能
$_SERVER['REMOTE_ADDR']; //浏览当前页面的用户的 IP 地址
$_SERVER['REQUEST_URI']; //URI 用来指定要访问的页面。例如 “/index.html”
$_SERVER['PATH_INFO']; //包含由客户端提供的、跟在真实脚本名称之后并且在查询语句(query string)之前的路径信息,如果存在的话。例如,如果当前脚本是通过 URL http://www.example.com/php/path_info.php/some/stuff?foo=bar 被访问,那么 $_SERVER['PATH_INFO'] 将包含 /some/stuff。
NULL
三种情况
直接赋值为NULL、未定义的变量、uset销毁的变量
常量
const、define定义
const更快,是语言结构,define是函数
define不能用于类常量的定义,const可以
常量一经定义,不能修改、删除
预定义常量
<?php
__FILE__; //文件的完整路径和文件名
__DIR__; //当前执行的PHP脚本所在的目录
__LINE__; //语句在文件中的行数
__METHOD__; //返回该方法被定义时的名字(区分大小写)
__CLASS__; //返回当前类名
__FUNCTION__; //返回当前方法名
__NAMESPACE__; //当前命名空间
__TRAIT__; //返回trait
本文深入探讨PHP中字符串的三种定义方式:单引号、双引号、heredoc/newdoc,及其特点与区别。同时,覆盖PHP数据类型,包括标量、复合和特殊类型,如浮点数、布尔值、数组和NULL,以及常量定义和预定义常量的使用。
767

被折叠的 条评论
为什么被折叠?



