京东PHP实习生(一面)

来源:互联网 发布:mysql create trigger 编辑:程序博客网 时间:2024/05/17 12:53

今天参加了京东PHP岗实习生的一面。可惜挂了,主要问的问题记录如下,当作反思:


1、数组去重函数?

例如定义一个数组

$arr =  array(1,1,1,2,2,2,3,3);

去重函数是array_unique();

$arr_unique = array_unique($arr) ;

此时打印数组$arr_unique 的到的结果



ps:本人学php比较渣不知道这个内置函数,于是乎自己写了个函数去重。估计这第一题后面试官的内心是崩溃的“我操,php的内置函数都不知道,还要自己实现?”


2、数组赋值时用[]跟array_push哪个效率高?

这个本人知道,使用array[]效率更高,不说别的,起码没有调用函数的开销对吧。网上有这种博客,大家自行寻找。我随便贴一个

http://www.blogjava.net/kohri/archive/2012/04/04/373323.html


3、empty()函数的考察

empty(0),empty(""),empty([])返回值


这三个返回都是  true


4、将一个对象转换为数组的方法?

关于这个,我答的是写个函数遍历对象的内容,然后赋值给一个数组对象,面试官的答案是将对象序列化为一个json格式字符串,然后json_decode一下。我回来后查了挺多资料,基本都是自己写遍历函数实现的。说实话,系列化这东西自己刚昨天看到,,只不过实际项目中暂时未接触到这个,估计跟面试官期望的答案不一致吧。


5、描述cookie跟session的区别

cookie 和session 的区别:

(1)、cookie数据存放在客户的浏览器上,session数据放在服务器上。

(2)、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
   考虑到安全应当使用session。

(3)、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
   考虑到减轻服务器性能方面,应当使用COOKIE。

(4)、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie

(5)、所以个人建议:
   将登陆信息等重要信息存放为SESSION
   其他信息如果需要保留,可以放在COOKIE中

6、get跟post的区别?当大数据时用get还是post?

区别不说了,大家都懂。

至于大数据肯定是post啊。因为get时,数值内容暴露在url中。而浏览器url长度是有限的,(忘了在哪看到过url最大是1024,于是自己跟面试官扯最大是1024)回来后查了查,不同浏览器url长度不同,例如;


经过实际测试

在IE8 下的URL地址总长度为:4076,超过该长度会自动忽略后面的内容;

firefox 25下的URL地址总长度可以达到:7530,超过该长度会访问错误

在chrome 29.0.1547.62 的最大总长度达到:7675,超过该长度会访问错误


总结:

京东的php面的很基础很基础,,,虽然自己干了一年的php,但是主要是用的框架,遇到某个需求或功能时也只是去查一下函数,没有系统的学习过php。总之一句话,你的付出与你的得到成正比,少年啊,要是想拿offer的话还是努力吧。最后还想吐槽一下:这一年在实验室真是“毁人不倦”啊。唉!!







0 0
原创粉丝点击