2019PHP面试总结

1、char和varchart的区别:

  • 大小:char的长度是不可变的,而varchar的长度是可变的。
  • ​​​​​​取出:取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。
  • 读取速度:char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。
  • 储存方式:char的储存方式是对英文字符(ASCII)占1个字节,对汉字占用两个字节;而varchar的储存方式是对每个英文字符占用2个字节,汉字也占用2个字节,两者的储存数据都是非unicode的字符数据。

2、session和cookie的区别:

2019PHP面试总结_第1张图片

3、无限极分类处理方式:

      递归

4、对于未登录加入购物车的处理方法(根据网上一些资料还有自己的一些理解来总结的):

2019PHP面试总结_第2张图片

5、图片太大在损耗图片的情况下如何处理,以什么字段储存为好?

      压缩、转码,使用BLOB

6、OSS的处理,云储存处理

      这个就看自己有没做过了,自己去看文档吧~

7、MySQL的优化(重中之重,今年我面试,很多公司都问到)

   我就不详细说了,给些地址个大家看吧,https://www.cnblogs.com/xiaoblog/p/4209930.html

8、价格的储存字段是什么?这个就是decimal大小看自己习惯,记得保留2位小数。

    decimal(10,2)

9、如何分库分表,怎么处理?

    请参考这些博客:   http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.html
                                    http://www.jb51.net/article/29771.htm

10.SQL的防注入(还要写方法,笔试题)

mysql_escape_string(strip_tags($arr["$val"]));
/**
* 函数名称:post_check() 
* 函数作用:对提交的编辑内容进行处理 
* 参  数:$post: 要提交的内容 
* 返 回 值:$post: 返回过滤后的内容 
*/
function post_check($post){
if(!get_magic_quotes_gpc()){// 判断magic_quotes_gpc是否为打开 
$post = addslashes($post);// 进行magic_quotes_gpc没有打开的情况对提交数据的过滤 
}
$post = str_replace("_","\_",$post);// 把 '_'过滤掉
$post = str_replace("%","\%",$post);// 把 '%'过滤掉
$post = nl2br($post);// 回车转换 
$post =htmlspecialchars($post);// html标记转换 
 
return $post;
}

11、什么情况下建立索引,索引的应用(很多公司都问到,切记索引不是越多越好,有时候他会坑一下你)

      这是我之前写的一篇索引建立情况,如果不全自行脑补:https://blog.csdn.net/qq_38194486/article/details/88655166

12、GET和POST的区别:

      这也是一个小坑,从用法、大小、安全等方面回答算是“标准答案”,他有时候不一定是要这些答案,请参考:

      https://www.cnblogs.com/logsharing/p/8448446.html

13、获取到IP地址,并且判断是否在192.168.1.1和192.168.1.255间(笔试题)

     ip获取请参考:https://www.feiniaomy.com/post/226.html

     判断范围请参考:https://blog.csdn.net/u010111874/article/details/51744253

14、php获取链接的文件名称和扩展名的方法?(方法不唯一,有很多,自行补上)

    basename()、dirname()、pathinfo()、realpath

    不会用,请参考:https://www.jb51.net/article/104844.htm

15、Git上传的步骤,写出命令

          可以参考一下:https://www.jianshu.com/p/93318220cdce,或者自己去找git命令大全看看

16、php获取数组中不重复的值

用PHP自带函数计算出每个元素重复的次数,将次数重复等于1的赋予一个新数组
$a = array(1,2,3,3,2,1,5);
$b = array_count_values($a);
foreach($b as $k=>$v){
    if ($v == 1){
        $c[$k]  = $v;
    }
}
print_r($c);

17、HTTP状态码有什么,写出来(由于太多了,我就只写了1XX~5XX这几种)

          1XX:信息 请求已被接受或流程仍在继续

           2XX:缺认操作已完成或已被理解

           3XX:重定向 需要进行其他操作才能完成

           4XX:客户端错误,指示请求无法完成或包含错误的语法

           5XX:服务器错误,指示服务器服务未能完成认为有效的请求

          更多详细错误请参考:https://blog.csdn.net/laishaohe/article/details/79052085

18、Mysql InnoDB引擎的行锁和表锁,使用情况和区别?

       请参考一下,了解原理、用法:

        https://blog.csdn.net/luzhensmart/article/details/81675527

        https://blog.csdn.net/qq_23473123/article/details/80069708

        https://blog.csdn.net/u014453898/article/details/56068841

19、PHPSocke问题,如何解决多并发,是否会搭建,以及原理是什么?

      给张原理图看看:

2019PHP面试总结_第3张图片

20.对于开发过微信公众的,他会问你微信支付红包推送和提现的接口是否是同一个?

      红包:https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack

      提现:https://api.mch.weixin.qq.com/mmpaysptrans/pay_bank

21、对于开发过微信小程序的,他会问你页面跳转的四种方法是什么?

      wx.navigateTo({})、wx.redirecTo()、、wx.switchTab

     手册自己直接看一下:https://developers.weixin.qq.com/miniprogram/dev/api/wx.navigateToMiniProgram.html

22、缓存问题,Memcached、Redis、Mongodb这些分别与优劣(每家公司都问到)

       memcached:单一键值对内存缓存的,做对象缓存无可替代的分布式缓存;

       redis:是算法和数据结构的集合,快速的数据结构操作是他最大的特点,支持数据持久化;

       mongodb:bson结构、介于rdbnosql之间的,更松散更灵活的,但是不支持事务,只用作非重要数据存储。

       更多区别,请参考:https://www.cnblogs.com/457248499-qq-com/p/7392653.html

23、PHP解析xml的方法有什么?

        DomDocument、XMLReader、DOMXPath、xml_parse_into_struct、Simplexml

        详情:https://www.cnblogs.com/caicaizi/p/7837286.html

24、Nginx和Apache的区别、优劣?

        参考一下:https://www.cnblogs.com/huangye-dream/p/3550328.html

25、分析一条SQL的性能,自写自分析

26、高并发下订单号生成如何处理

以上就是我经历的一些面试题,我面试中遇到的重点在于SQL的处理及分析。我把所遇到的面试题分享出来个大家,希望能够帮到大家~

你可能感兴趣的:(面试总结)