php初级面试题的总结

PHP初级面试题聚焦基础语法、数据类型、数组操作、表单处理与面向对象入门,强调动手实践和细节理解,如变量规则、双/单引号区别、empty/isset差异、echo与var_dump区别、===严格比较、array_merge与+合并差异、htmlspecialchars防XSS、public访问控制及__construct构造方法等。

PHP初级面试题主要考察基础语法、数据类型、数组操作、字符串处理、表单交互和简单面向对象概念。掌握这些核心点,基本能应对大多数初级岗位的技术筛选。

基础语法与数据类型

面试官常从最基础的写法切入,检验是否真正动手写过代码。比如变量定义规则(必须以$开头)、双引号和单引号的区别(双引号解析变量和转义,单引号原样输出)、NULL、0、''、false、[] 的判空差异(用empty()isset()判断时行为不同)。

常见问题示例:

  • echoprintprint_rvar_dump 的区别(输出方式、返回值、调试用途)
  • ===== 的区别(类型转换 vs 严格比较)
  • 如何获取变量类型?gettype()is_string() 等类型判断函数要能说出两三个

数组操作是高频考点

PHP数组灵活但易混淆,面试中大概率会问遍历、合并、去重、键值操作等。重点不是背函数名,而是知道“什么场景用什么函数”。

典型问题包括:

  • foreach遍历时,&$value加引用的作用(修改原数组值)
  • array_merge()+ 合并数组的区别(键冲突时前者覆盖,后者保留前者)
  • array_unique() 对多维数组无效,需手动处理或用array_column()配合
  • 如何交换数组的键和值?array_flip()(注意只支持字符串/数字键)

表单处理与安全意识初显

初级岗虽不深挖安全细节,但若连$_GET$_POST$_REQUEST的区别都说不清,或直接把用户输入拼进SQL,基本会被扣分。

应知要点:

  • $_GET用于URL参数,长度受限;$_POST适合传大量或敏感数据
  • 接收表单数据前建议用isset()filter_input()做存在性检查
  • 输出用户数据到HTML前,用htmlspecialchars()防XSS(至少知道这个函数名和作用)
  • 别手写SQL拼接,哪怕只是"SELECT * FROM user WHERE id = {$_GET['id']}"——这是硬伤

面向对象入门概念

初级PHP不要求写复杂设计模式,但得明白类、对象、属性、方法、$thispublic这些关键词的实际意义。

可能被问到:

  • 类里定义属性时加public是干啥的?(控制访问权限,初级阶段知道public就够)
  • $this->nameself::$name 的区别(实例属性 vs 静态属性)
  • 构造方法叫什么?__construct(),且不能有返回值
  • 自动加载机制?知道__autoload()已废弃,现在用spl_autoload_register()

基本上就这些。不复杂但容易忽略细节。把每个点自己敲一遍代码验证下,比光看答案强得多。