【PHP面试题】数据类型及常量(包含 7种false的情况、超全局数组、预定义常量、获取服务器信息函数)

一、数据类型

三个数据类型(标量、复合、特殊)

  • 标量类型:
    • 整型(int)
    • 浮点型(float)
    • 字符串(string)
    • 布尔型(boolean)
  • 复合类型:
    • 对象(object)
    • 数组(array)
  • 特殊类型:
    • 资源(resource)
    • NULL

数据类型中的注意事项:

浮点型:浮点类型不能运用于比较运算中,精确的来说,不能用于相等的判断中

$a = 0.1;
$b = 0.7;
if ($a + $b == 0.8) { // false = 0.79999....
    
}

由于 0.10.7 在进行计算的时候,是交给 CPU 进行计算的,CPU在计算的时候,只能将其转为二进制。在转换为二进制的时候,会有一定的损耗,会转为 010101...的格式。对于 0.10.7 来说,0.1 在转换的时候,会转换为 010101... 的格式,就会有损耗。有损耗的话, 我们 0.1 + 0.7 = 0.799999... ,最终是得不到 0.8 了, 损耗了 0.00000.....1。因此,浮点类型不能用于精确的相等的判断

1、 布尔型:需掌握 FALSE的七种情况
  • 整型 0;
  • 浮点 0.0;
  • 空字符串 ‘’;
  • 零字符串 ‘0’;
  • 布尔型 false;
  • 空数组 array();
  • NULL
2、 数组类型:考察 超全局数组
$GLOBALS; // 包含了后面的所有内容
$_GET
$_POST
$_REQUEST; // 包含了 $_GET、$_POST、$_COOKIE,【$_REQUEST尽量少用,它相当于一个万能钥匙,既可以接收 get/post/cookie,它的安全性偏低】
$_SESSION;
$_COOKIE;
$_SERVER;
$_FILES;
$_ENV;
3、$_SERVER 重点记忆:
$_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地址【重点考察】
$_SERGER['REQUEST_URI']; // 比如我们请求的是 index.php,此时 URI为 /index.php
$_SERVER['PATH_INFO']; // 用来处理路由或处理框架中路由的功能(抓取的是URL地址中的路径部分,既不是前面的脚本的名称,也不是后面的 $_SERVER['QUEST_STRING'])【如:访问 http://www.imooc.com/index.php/use/reg?status=ghost,则抓取的是 use/reg?status=ghost】
4、NULL:三种情况
  • 直接赋值为NULL;
  • 未定义的变量;
  • unset销毁的变量;

二、 常量

1、 定义
  • const 更快,是语言结构;可以定义类常量;
  • define 是函数;不能定义类常量;

注:常量一经定义,不能被修改,不能被删除;


2、预定义常量
__FILE__; // 返回文件的路径名 和 文件的名称
__LINE__; // 所在行的行号
__DIR__; // 所在目录
__FUNCTION__; // 所在函数体中的函数名称
__CLASS__; // 类名
__TRAIT__; // trait的名称(PHP 5.4起的一个特性)
__METHOD__; // 类名 + 方法名
__NAMESPACE__; // namespace的名称













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值