文章目录 [+]
PHP基础面试题
一:PHP数组排序
1.php内置函数:
$arr = [0 => 0, 1 => 11, 5 => 5, 3 => 3]; sort($arr); // 升序 rsort($arr); // 降序 ksort($arr); // 根据键对关联数组升序 krsort($arr); // 根据键对关联数组降序 asort($arr); // 根据值对关联数组升序 arsort($arr); // 根据值对关联数组降序 print_r($arr);
2.php冒泡排序:
$arr = [1,5,3]; $len = count($arr); for ($i = 1;$i < $len;$i++){ for ($j = 0;$j < $len - $i;$j++){ if($arr[$j] > $arr[$j + 1]){ $temp = $arr[$j]; $arr[$j] = $arr[$j + 1]; $arr[$j + 1] = $temp; } } } print_r($arr);
二:POST和GET的区别。
1.GET提交会产生一个TCP数据包,POST会产生两个TCP数据包。
2.GET会被浏览器Cache,POST不会。
3.GET提交数据会显示到地址栏,POST提交不会。
4.GET提交数据会将http的header部分和post数据一起提交,而POST则会先将http的header头部提交,然后返回100之后,再提交post数据,返回200成功。
5.GET在回退时是无害的,而POST回退会再次提交数据。
6.GET请求只能进行url编码,而POST支持多种编码方式。
7.GET比POST更不安全。
三:include和require的区别。
1.require是无条件包含,也就是如果一个流程加入require,无论条件是否成立,都会执行require,如果文件不存在或者有错误,会提示致命错误,终止代码运行。而include则会提示警告性错误,不影响后边代码执行。
2.include有返回值,require没有返回值。
四:mysql的基本优化
1.查询一条语句使用LIMIT 1。
2.使用EXPLAIN优化查询语句。(具体关于EXPLAIN近期会整理一片文章)
3.为搜索字段建立索引。
4.千万不能使用ORDER BY RAND();
5.避免使用SELECT ×,需要那个字段,查询哪个字段。
为每个表设置一个主键ID。
尽可能的不要使用 NULL类型。
垂直分割表。
选择正确的mysql引擎。
小心永久链接。
五:SESSION和COOKIE的区别
1.Cookie和Session都是会话技术,Cookie是运行在客户端,Session是运行在服务器端。
2.Cookie有大小限制以及浏览器在存cookie的个数也有限制,Session是没有大小限制和服务器的内存大小有关。
3.Cookie有安全隐患,通过拦截或本地文件找得到你的cookie后可以进行攻击。
4.Session是保存在服务器端上会存在一段时间才会消失,如果session过多会增加服务器的压力。
六:cookie机制和session机制的区别
1.Cookie机制采用的是在客户端保持状态的方案。
2.Session机制是服务器端使用的一种记录客户端状态的机制。
七:echo、print、print_r的区别
1.echo和print都可以做输出,但是echo不是函数,没有返回值,print()有返回值,而print_r通常相对于打印变量的相关信息,例如打印数组,对象。
八:反向代理和正向代理
1.正向代理隐藏真实客户端,反向代理隐藏真实服务端,通熟易懂,下边上图看。
九:单例模式
1.单例模式详解。
发表评论