1. PHP 的设计模式有哪些?

  • 单例模式
  • 工厂模式
  • 适配器模式
  • 注册数模式
  • 观察者模式

2. Session 和 Cookie 的区别是什么?

  • Session 存储于服务器,Cookie 存储与客户端
  • Session 比较安全,Cookie 可被修改,不安全
  • Session 依赖于 Cookie 存储的 SessionID 进行页面间的共享,当客户端 Cookie 被禁用后,需要通过其他方式来传递 SessionID,例如修改 php.ini 文件实现让PHP自动跨页传递 SessionID;或者使用表单隐式传递 SessionID;或者使用数据库或文件来保存 SessionID,跨页时手动调用

3. 表单中 GET 和 POST 提交方式的区别?

GET 提交:传递的数据量较小,提交内容拼接在 访问地址 上,安全性较低 POST 提交:传递的数据量较大,提交内容由表单提交,相较于 GET 安全性较高, 一般在查询类请求可以使用 GET,而一些涉及到数据修改的可以使用 POST

4. 请说明 PHP 中传值和传引用的区别,什么时候传值什么时候传引用

例如函数传参,如果使用 传值 则首先需要赋值一个值进行入值,而且在函数内的修改在函数外都无效;而 引用 则是对入参的内容进行传递,不需要创建新的内存进行复制,并且函数内的修改在函数外也有效。

在针对大字符串或变量时,为避免创建新的临时变量消耗内存,推荐使用 引用 ,一般情况下使用 传值

5. 语句 include 和 require 的区别是什么

PHP include 、include_once 和 require 、require_once 的区别

6. PHP 的基本变量类型

PHP 基本数据类型简明

7. 双引号和单引号

单引号:对于内部的变量不会解析,只能解析部分特殊符号,所以解析速度快。 双引号:对于内部的变量会进行解析,可以解析所有特殊符号,所以解析速度比 单引号

8. 常见的 PHP 安全性攻击

SQL注入:无效或错误的 SQL 语句操作额外的消耗资源。措施,参数验证和筛选,确保 SQL 语句的正确执行 CSRF:跨站点请求伪造,是指一个页面发出的请求,看起来像是网站的信任用户,但是是伪造的。措施,表单令牌,和用户的请求来源验证。

9. AJAX 的优势是什么?

提高用户体验,减轻服务器压力