PHP 面试常见对比

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: PHP 面试常见对比

define() 与 const 区别

  • 两者都是定义常量使用
  • const 是语言结构, define 是函数
  • const 可在类中使用, define 不可以
  • const 可以不同命名空间定义相同名称的常量, define 不可以
  • const 大小写敏感, define 默认敏感, 可通过第三个参数为 true 设置为不敏感

include 和 require 的区别是什么?

  • require 是无条件包含, 也就是如果一个流程里加入 require , 无论条件成立与否都会先执行 require , 当文件不存在或者无法打开的时候, 会提示错误, 并且会终止程序执行
  • include有返回值, 而require没有 (可能因为如此 require 的速度比 include 快), 如果被包含的文件不存在的话, 那么会提示一个错误, 但是程序会继续执行下去

单引号与双引号的区别

  • 单引号不解析变量,双引号解析变量
  • 单引号只可解析单引号及转义符本身,双引号可解析更多的特殊字符。例: \n、\r、\t
  • 解析速度不同,因单引号不考虑变量解析,所以比双引号要快

传值与传引用的区别

  • 按值传递 :函数范围内对值的任何改变在函数外部都会被忽略
  • 按引用传递 :函数范围内对值的任何改变在函数外部也能反映出这些修改, 因为传引用传的是内存地址。
  • 优缺点:按值传递时, php 必须复制值。特别是对于大型的字符串和对象来说, 这将会是一个代价很大的操作。按引用传递则不需要复制值, 对于性能提高很有好处。

echo、print、print_r、var_dump 的区别

  • print_r 与 var_dump 是函数, echo、print 是语句
  • echo 用于输出数值变量或字符串,可以逗号分隔输出多个。数组输出 Array, 对象报错。例: echo $a, $b;
  • print 用于输出数值变量或字符串, 不可输出多个。数组输出 Array, 对象报错。例: print $a;
  • print_r 可简单输出 字符串、数字、数组、对象, 但 布尔(false)、null 都是打印 \n
  • var_dump 可输出所有字符串、数字、布尔、数组、对象。包括键、值、类型、长度。

isset 与 empty 的区别

  • isset 检测变量是否设置并且非 NULL
  • empty 检测变量的值是否为 false, PHP 中 0、false、[]、‘0’ 、‘’ 所代表的布尔值都是 false

for 与 foreach 的区别,哪个更快?为什么?

  • for 需要预先知道数组的长度, foreach 不需要
  • foreach 效果要比 for 高,foreach 直接通过结构体中的 next 指针获取下一个值, 而 for 循环需要根据 key 先进行一次 hash 才得到值。
目录
相关文章
|
3月前
|
算法 程序员 Go
PHP 程序员学会了 Go 语言就能唬住面试官吗?
【9月更文挑战第8天】学会Go语言可提升PHP程序员的面试印象,但不足以 solely “唬住” 面试官。学习新语言能展现学习能力、拓宽技术视野,并增加就业机会。然而,实际项目经验、深入理解语言特性和综合能力更为关键。全面展示这些方面才能真正提升面试成功率。
60 10
|
7月前
|
PHP Python
最新【Python】 实现循环最快的方式_python while循环加速,2024年最新阿里php面试题
最新【Python】 实现循环最快的方式_python while循环加速,2024年最新阿里php面试题
|
设计模式 算法 关系型数据库
|
前端开发 NoSQL PHP
PHP面试题
权限管理(RBAC)的实现?
97 0
|
XML SQL 存储
PHP面试题大全
PHP面试题大全
314 0
|
缓存 算法 Java
PHP面试总结
PHP面试总结
147 0
|
存储 搜索推荐 算法
php-面试题
php-面试题
175 0