某源云面试题



HTTP 返回状态值
问: 写出你能想到的所有 HTTP 返回状态值,并说明用途
答:
状态值 | 用途 |
---|---|
200 | 成功 |
500 | 服务器内部错误 |
401 | 未经授权得访问 |
403 | 禁止访问 |
404 | 资源未找到 |
301 | 永久重定向 |
302 | 零时重定向 |
502 | 从上游服务器接受到无效的响应 |
POST、GET 方式的区别
问: HTTP 中 POST、GET 方式的区别
答: GET 参数通过 URL 传递,POST 放在 Request body 中。GET 请求在 URL 中传送的参数是有长度限制的,而 POST 没有。 GET 产生一个 TCP 数据包;POST 产生两个 TCP 数据包。
PHP 中双引号和单引号的区别
问: PHP中双引号和单引号的区别
答: 单引号:PHP当作纯字符串处理,不会解析字符串内包含的变量和字符转义。双引号:会解析字符串内包含的变量和字符转义。
PHP 各种打印的区别
问: echo
、print_r
、print
、var_dump
之间的区别
答: echo
输出一个或者多个字符;
print
和echo一样,速度比echo慢,但是有返回值;
print_r
可以打印数组;
var_dump
可以打印数组,包括表达式的类型与值。
require
的异常错误
问: require
一个不存在的文件时,如何避免抛出异常错误
答: 可以先用 file_exists()
判断文件是否存在
单例模式
问: 写一段 PHP demo 代码实现单例模式
<?php
<?php
class DB {
private $boj = null
private function __construct(){}
private function __cloce(){}
static function getInstance()
{
if(in_null(self:$boj)){
self.obj = new self();
}
return self:obj;
}
}
请描述一下 PHP 的自动加载机制
问: 请描述一下 PHP 的自动加载机制
答: 使用 spl_aotoload_registrer()
函数和 PSR-4规范
完成自动加载
Content-Type
设置
问: 发送 PSOT 请求时,application/x-www-form-urlencoded
和 multipart/form-data
有什么区别,如果需要发送 json
格式到后台,发送时 Content-Type
如何设置。
答: application/x-www-form-urlencoded
:浏览器的原生表单的默认方式,multipart/form-data
:使用表单上传文件时。
方案一:application/x-www-form-urlencoded
。把 JSON 字符串作为 value 放在键值对里。
方案二:application/json
。从 php://input
获取原始输入流转 JSON。
阐述下你对 MVC 的理解
问: 阐述下你对 MVC 的理解
答: 使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。
MySQL 慢查询
问: MySQL 查询慢有哪些原因?能否给出你的优化建议?为什么会有死锁?
答: 当事务试图以不同的顺序锁定资源时,就可能产生死锁。多个事务同时锁定同一个资源时也可能会产生死锁。
统计40X 错误的 URL 总数
问: 如何使用 shell 脚本统计网站前一天出现 40X 错误的 URL 总数?
答: 大概的思路,就是读取访问日志。
谈谈你对消息列队的理解
问: 谈谈你对消息列队的理解?除了 redis 有用过哪些?
答: 消息列队的作用就是解耦、异步、削峰。
变量传递相关问题
问: 请在表格右侧写出执行每一行后每个变量的值,每行变量的值依赖上一行。
过程 | 变量1 | 变量2 | 变量3 | 变量4 | 变量5 |
---|---|---|---|---|---|
$a=1;$b=2;$c=3;$d=4;$e=5 |
$a | $b | $c | $d | $e |
$b=&$a; |
1 | 1 | 3 | 4 | 5 |
$b="30$a"; |
301 | 301 | 3 | 4 | 5 |
$e=$c=($b++); |
302 | 302 | 301 | 4 | 301 |
$d=($c>$b)?($a+=2):(--$b); |
301 | 301 | 301 | 301 | 301 |
$e=implode(',',[$c,$e]); |
301 | 301 | 301 | 301 | 301,301 |
算法优化题
问: 优化题:有一序列1,1,2,3,5,8,13,21……
研究规律后有了下列的算法来求第 N 位的值。指出这个递归的性能问题,请给出优化方案,仍然使用递归。
<?PHP
function fun($n){
if($n==1||$n==2){
return 1;
}
return fun($n-1)+fun($n-2);
}