PHP面试点二 | 常量及数据类型考点

本文深入探讨PHP中字符串的三种定义方式:单引号、双引号、heredoc/newdoc,及其特点与区别。同时,覆盖PHP数据类型,包括标量、复合和特殊类型,如浮点数、布尔值、数组和NULL,以及常量定义和预定义常量的使用。

真题

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值