PHP面试必备知识点:预定义变量、错误处理、HTTP状态码等

0 下载量 57 浏览量 更新于2024-06-29 收藏 58KB DOCX 举报
"2022年php面试题.docx" 这篇文档包含了2022年PHP面试中的一些常见问题及答案,涵盖了PHP的基础语法、预定义变量、HTTP状态码、数组操作、正则表达式、PHP与Apache的集成、错误处理、会话管理以及SQL查询等多个方面。以下是对这些问题的详细解释: 1. PHP预定义变量`$_SERVER`用于存储服务器和请求的相关信息。`$_SERVER['PHP_SELF']`表示当前执行脚本的名称,不包括路径和查询字符串,而`$_SERVER["HTTP_REFERER"]`则记录了用户从哪个页面链接到当前页面的URL。 2. PHP中的模运算符 `%` 用于取余数。即使负数参与运算,结果也会是整数。因此 `8 % (-2)` 的结果为 `0`。 3. HTTP状态码401表示"Unauthorized",即未授权,通常用于认证失败的情况。`header("HTTP/1.0 404 Not Found")` 可用于向客户端发送404状态码,表明找不到请求的资源。 4. `arsort()` 函数是PHP中的数组函数,用于对关联数组进行降序排序,并保持索引关系。`error_reporting(2047)` 设置错误报告级别为最高,显示所有错误和警告。 5. 正则表达式 `/<[^>].*?>.*?<\/>/si` 用于匹配和移除HTML中的JavaScript或VBScript脚本。`s` 和 `i` 是修饰符,`s` 让`.`匹配任何字符(包括换行),`i` 对大小写不敏感。 6. 在Apache中集成PHP,需要在http.conf配置文件中使用 `LoadModule` 加载PHP模块,如示例所示。`AddType` 语句则用于指定哪些文件扩展名会被Apache视为PHP脚本。 7. `include` 和 `require` 都用于包含其他文件,但 `require` 在文件不存在或无法打开时会引发致命错误,而 `include` 只会产生警告。`require_once` 和 `include_once` 是它们的变体,确保文件只被包含一次。 8. PHP的 `serialize()` 和 `unserialize()` 函数用于序列化和反序列化对象和数据,允许将类的属性保存到session中,以便在后续请求中恢复。 9. PHP中默认不允许在函数调用时传递变量引用作为参数,但可以通过在php.ini中设置 `allow_call_time_pass_reference` 为 `on` 来开启这个功能。 10. SQL的 `LEFT JOIN` 用于从左表返回所有记录,并与右表中的匹配记录组合。这是数据库查询中的一个关键概念,特别是在处理多个表之间的关联操作时。 这些面试题展示了PHP开发者应具备的基本技能和知识,包括核心语言特性、Web服务器交互、错误处理、安全性以及数据库操作等。准备这些面试题有助于深化对PHP的理解和实际应用能力。