php基础部分常见考点
1. 双引号单引号区别
- 双引号解释变量,单引号不解释变量
- 双引号里插入单引号,其中单引号里如果有变量的话,变量解释
- 双引号的变量名后面必须要有一个非数字、字母、下划线的特殊字符,或者用{}讲变量括起来,否则会将变量名后面的部分当做一个整体,引起语法错误
- 能使单引号字符尽量使用单引号,单引号的效率比双引号要高
2. GET和POST提交方式的区别
- GET产生一个TCP数据包;POST产生两个TCP数据包;
- 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据)
对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。 - GET在浏览器回退时是无害的,而POST会再次提交请求
- GET请求会被浏览器主动cache,而POST不会,除非手动设置
- GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留
- GET请求只能进行url编码,而POST支持多种编码方式
- GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息
3. SESSION和COOKIE的区别
1、cookie存储在客户端、session存储在服务器端
2、cookie大小限制为4k,每个站点仅能存20个cookie,session没有限制
3、cookie仅能存字符串,session可以存所有类型
4、session依赖于cookie,由于http是无状态的,所以就算是服务器端保存状态的方案也要在客户端存储一个标识,这个标识存储于COOKIE中,可以通过$_COOKIE['PHPSESSID']查看
5、cookie禁用后session不能使用,可以通过get或者post的方式将PHPSESSID传到服务器
4. isset 和 empty 的区别
5. echo、print_r、print、var_dump 之间的区别
6. 什么是 mvc?
7. 函数内部 static 和 global 关键字的作用
- static 是静态变量,在局部函数中存在且只初始化一次,使用过后再次使用会使用上次执行的结果; 作为计数,程序内部缓存,单例模式中都有用到。
- global 关键字,引用全局变量,wordpress中大量用到,如面向过程开发。
- static 静态方法,是类的成员方法,但不需要实例化类可直接使用
- $GLOBAL 在函数内使用具有全局作用域的变量,如$GLOBAL[‘a’]
8. 子类重写父类的 protected 方法有什么限制?或者说有什么要遵守的规则?
- 重写时访问级别只可以等于或者宽松于父类 不可提升访问级别
- PHP是否重写父类方法只会根据方法名是否一致判断(5.3以后重写父类方法参数个数必须一致)
- final修饰的类方法不可被子类重写
9. 传值和传引用的区别?
10. PHP文件末尾是否应该加 ?> 结束符号,为什么?
- 主要防止 include,require 引用文件,把文件末尾可能的回车和空格等字符引用进来,还有一些函数必须在没有任何输出之前调用,就会造成不是期望的结果。
- PHP文件的编码不包含BOM的UTF8. 这也是PSR-2中的规范:纯PHP代码文件必须省略最后的 ?> 结束标签
网友评论