PHP面试必备知识点:预定义变量、错误报告、SQL连接

需积分: 10 2 下载量 119 浏览量 更新于2024-09-10 2 收藏 43KB DOC 举报
"php面试试题及答案" 在PHP面试中,了解和掌握基本的语法、预定义变量、错误处理、数组操作、文件包含、对象序列化、数据库查询以及配置选项等知识点至关重要。以下是对给定面试题目的详细解析: 1. `$_SERVER['PHP_SELF']` 是一个预定义变量,它包含了当前执行脚本的文件名,不包括路径和查询字符串,常用于表单提交后的自我引用。而 `$_SERVER['HTTP_REFERER']` 记录了用户是从哪个页面链接过来的,即上一页的URL。 2. PHP中的模运算 `%` 对负数也适用。执行 `echo 8 % (-2)` 将输出 `0`,因为 `-2` 能被 `8` 整除两次,余数为 `0`。 3. HTTP状态码 `401 Unauthorized` 表示客户端在请求受保护的资源时没有提供有效的身份验证信息。当服务器返回 "找不到文件" 的提示时,可以使用 `header` 函数发送自定义HTTP响应,如 `header("HTTP/1.0 404 Not Found")`。 4. `arsort()` 函数用于对关联数组进行逆向(降序)排序,同时保持键与值的关联。 5. 在Apache中以模块方式安装PHP,需要在 `http.conf` 配置文件中加载PHP模块,使用 `LoadModule` 命令,并通过 `AddType` 命令指定PHP处理的文件类型。例如:`LoadModule php5_module "D:/xampp/apache/bin/php5apache2.dll"` 和 `AddType application/x-httpd-php .php`。 6. `include` 和 `require` 都用于包含其他文件,但处理错误的方式不同。`include` 产生警告,而 `require` 产生致命错误。`include_once` 和 `require_once` 则确保文件只被包含一次。 7. PHP的 `serialize()` 和 `unserialize()` 函数允许将类的属性序列化存储到 `session` 中,然后在后续请求中通过 `unserialize()` 恢复对象状态。 8. 默认情况下,函数参数不能是变量的引用。若需传递引用,需在php.ini中设置 `allow_call_time_pass_reference` 为 `on`。 9. SQL中的 `LEFT JOIN` 用于实现左连接,返回左边表(在本例中是 `tbl_user`)的所有记录,即使在右边表(`tbl_score`)中没有匹配项。如果某学生在 `tbl_score` 中没有记录,结果仍将显示该学生的姓名,但对应的成绩列将是 `NULL`。打印各学生姓名及其各科总成绩的SQL语句可能是这样的: ```sql SELECT name, COUNT(score) AS sum_s FROM tbl_user LEFT JOIN tbl_score ON tbl_user.ID = tbl_score.ID GROUP BY tbl_user.ID ``` 这个查询会统计每个学生的考试科目总数,并显示其姓名。 以上就是PHP面试中涉及的一些关键知识点,理解并掌握这些内容对于提升PHP开发者的技能和应对面试都非常有帮助。