某源云面试题

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 各种打印的区别

问: echoprint_rprintvar_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-urlencodedmultipart/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);
}
全部评论(1)
必填
必填,不公开
我信任你,不会填写广告链接
收起
轻轻 说:
之后有被拿到offer吗?
2021年04月11日 08:09
回复
必填
必填,不公开
我信任你,不会填写广告链接
收起