PHP面试知识脉络(更新中)

  • PHP基础知识
  • Javascript、jQuery、ajax基础知识
  • Linux基础知识
  • MySQL数据库的基础与优化
  • 程序设计题
  • PHP框架基础知识
  • 算法、逻辑思维
  • 高并发解决方案

一、PHP基础知识

  1. 引用变量

概念:在PHP中引用意味着用不同的名字访问同一个变量内容
定义方式:使用&符号

COW机制(Copy on Write) 写时复制机制

unset() 只会取消引用,而不会销毁占用空间
对象本身就是引用传递

 
  1. 常量及数据类型

字符串定义方式:单引号、双引号、heredoc、newdoc
区别:

  • 单引号不解析变量;双引号解析变量,变量可以用特殊字符和{}包含
  • 单引号不解析转义字符,直解析单引号和反斜线本身;双引号解析所有转义字符
  • 变量和变量、变量和字符串、字符串和字符串之间可以用.连接
  • 单引号效率更高

heredoc类似于双引号 newdoc类似于单引号

三大数据类型:标量、复合类型、特殊类型

  • 浮点类型不能用于比较运算(相等判断)
  • false的7种情况:0 , 0.0 , '' , '0' , false , array() , NULL
  • null的3种情况:直接赋值为null,未定义的变量,unset()销毁的变量

超全局数组 $GLOBALS$_GET$_POST$_REQUEST$_SESSION$_COOKIE$_SERVER$_FILES$_ENV

  • $GLOBALS包含所有超全局数组
  • $_REQUEST包含$_GET$_POST$_COOKIE

常量定义

预定义常量:
__FILE__,__LINE__,__DIR__,__FUNCTION__,__CLASS__,__TRAIT__,__METHOD__,__NAMESPACE__

  1. 运算符及流程控制

错误控制符@,将其放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都将被忽略。

运算符优先级

递增/递减 > ! > 大小比较 > (不)相等比较 > 引用 > 位运算符(^)> 位运算符(|)> 逻辑与 > 逻辑或 > 三目 > 赋值 > and > xor > or

建议使用()增加可读性

  • 递增/递减 不影响布尔值
  • 递减null 没有效果
  • 递增null 为 1

短路作用

  1. 自定义函数及内部函数
  2. 正则表达式
  3. 文件及目录处理
  4. 会话控制
  5. 面向对象
  6. 网络协议
  7. 开发环境相关

二、Javascript、jQuery、ajax基础知识

三、Linux基础知识

四、MySQL基础知识

  1. MySQL基础知识
  2. MySQL如何创建高性能索引
  3. MySQL的sql语句的编写和优化
  4. MySQL的高可扩展和高可用性及安全性

五、程序设计题

六、PHP框架基础知识

七、常见算法、逻辑思维考察点

  1. 常见数据结构特征
  2. 算法的工作原理
  3. 时间复杂度
  4. 空间复杂度
  5. 其他逻辑算法
  6. PHP内置函数实现

八、高并发解决方案

  1. 如何理解高并发
  • PV
  • UV
  • QPS
  1. 优化时机——QPS阶段性优化

  2. 优化案例

  • 防盗链
  • 减少HTTP请求
  • 浏览器缓存
  • CDN
  • 数据库缓存(memcache、nosql)
  • MySQL读写分离
  • 分区以及分库分表
  • LVS负载

常见经典面试题

  1. 什么是引用变量?在PHP中用什么符号定义引用变量?
  2. 要求写出jQuery中可以处理ajax的几种方法。
  3. 写出尽可能多的Linux命令。
  4. 写出三种以上MySQL数据库存储引擎的名称。
  5. 编写一个在线留言本,实现用户的在线留言功能。
  6. 谈谈你对mvc的认识,介绍几种目前比较流行的mvc框架。
  7. 请写出常见的排序算法。
  8. PHP如何解决网站大流量与高并发的问题?

你可能感兴趣的:(PHP面试知识脉络(更新中))