PHP面试必备知识点:预定义变量、错误处理与数据库操作

需积分: 9 13 下载量 93 浏览量 更新于2024-08-01 收藏 107KB DOC 举报
"这篇资源是关于PHP面试题的个人总结,包含了多个PHP基础和进阶问题,适合准备PHP面试的人员参考。" 1. PHP中记录当前脚本名称的预定义变量是`$_SERVER['PHP_SELF']`,而链接到当前页面的URL通常存储在`$_SERVER['REQUEST_URI']`中。 2. 执行`echo 8 % (-2)`会输出`-0`,因为PHP中负数除以正数的结果会保留小数部分。 3. HTTP 1.0中的状态码401表示未经授权,需要身份验证。使用`header('HTTP/1.0 404 Not Found')`可以设置返回“找不到文件”的HTTP响应。 4. `arsort()`函数用于对关联数组进行降序排序并保持键值关联。`error_reporting(2047)`的作用是开启所有错误报告,2047是所有错误等级的二进制和。 5. PEAR中的数据库连接字符串格式通常是`DB::connect("driver://user:password@host/database")`。 6. 过滤网页上JS/VBS脚本的正则表达式可能如下:`/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/is`,这将匹配并删除所有的`<script>`标签及其内容。 7. 在Apache的httpd.conf配置文件中,通过`LoadModule php_module modules/libphp.so`动态装载PHP模块,然后使用`AddHandler application/x-httpd-php .php`使得Apache处理.php文件。 8. `include`和`require`的主要区别在于,`require`在文件不存在时会抛出致命错误,而`include`只会发出警告。避免多次包含同一文件可以使用`include_once`或`require_once`。 9. 使用`serialize()`和`unserialize()`可以将对象序列化和反序列化,从而保存到session中。 10. 要使函数参数可以作为引用传递,需要在php.ini中设置`allow_call_time_pass_reference`为`on`。 11. SQL中的LEFT JOIN用于从左表(第一个表)中返回所有记录,并与右表(第二个表)中的匹配记录组合。如果不匹配,右表字段将显示为NULL。 12. PHP中的heredoc字符串的结束标志必须以同样的缩进和不带引号的特定标识符结束,例如`<<END`开始,也需要以`END;`(不带引号且在同一行)结束。 13. 实现遍历文件夹下的所有文件和子文件夹,可以使用递归的`scandir()`函数配合`foreach`循环。 14. 论坛无限分类的实现原理通常基于自引用关联的数据库结构,每个分类都有一个父分类ID,顶级分类的父分类ID为0,通过递归查询或层级序列表存储方式实现无限级分类展示。 15. 设计该网页可以使用JavaScript配合HTML和CSS。创建一个全屏弹出窗口,窗口内有文本框和按钮。点击按钮时,使用JavaScript获取文本框的值,将其显示在主网页上,同时关闭弹出窗口。 以上就是PHP面试题的部分解答,涵盖了变量、运算符、HTTP状态码、错误报告、数据库连接、正则表达式、Apache配置、文件包含、session、函数参数、SQL查询、字符串语法等多个PHP核心概念和技术。这些知识点对于理解和提升PHP编程技能至关重要。