2021 最新PHP开发工程师面试题!!!

250 阅读2分钟

1、 什么是面向对象? 主要的特征是什么?

  • 面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加的清晰。将面向过程分析出来的步骤进行封装,一个对象具有特定的属性和方法,一切皆为对象。

  • 主要特征:封装,继承,多态。

2、 SESSION 和 COOKIE 的区别是什么?从协议产生的原因于作用说明

  • 存储的位置不同 SESSION:存储在服务器端,COOKIE:存储在客户端。

  • 存储容量不同 单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie。 对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制

  • 存储的方式不同 cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据;session中能够存储任何类型的数据,包括且不限于string,integer,list,map等。

  • 隐私策略不同 cookie对客户端是可见的,他人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。session存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。

  • 跨域支持上不同 cookie支持跨域名访问 session不支持跨域名访问。

3、 HTTP 状态中 302,401,403,500的代码的含义

  • HTTP 中的五大系列: 100 - 信息系列,200 - 成功系列,300 - 重定向系列,400 - 客户端错误,500 服务器错误

  • 302 表示所请求的页面已经临时转移至新的URL

  • 401 表示合法请求,但对被请求页面的访问被禁止。因为被请求的页面需要身份验证,客户端没有提供或者身份验证失败。

  • 403 合法请求,但对被请求页面的访问被禁止。(没有权限)

  • 500 请求未完成。服务器遇到不可预知的情况。(服务器内部错误)

4、 PHP中传值与传引用的区别

  • 传值与传引用就是引用赋值的方式。涉及到了栈和堆的问题

  • 传值就是将一个变量的值复制出来一份给另一个变量。相当于在栈中每一个变量都有一个值,改变一个变量的值另一个不会受到影响。

  • 传引用就是将一个变量的值赋值给另一个变量(将值在堆中对应的地址赋值给一个变量,两个变量共用同一个值)当一个变量改变值的时候相对应的另一个变量的值也会发生改变。