如图:
去了后先php工程师面试,问了一些基础的问题,然后是部门php leader面试。
以下答案仅供参考:
1 . 前端跨域请求后端接口的方法有哪些?
// 方式一 ajax jsonp get请求 $.ajax({ url: '/jsonp', type: 'get', dataType: 'jsonp', jsonp: 'jsonp', jsonCallback: 'fn', success: function (response) {} }) function fn (response) { console.log(response) } // 方式二 script脚本 jsonp get请求 <script src='http://test.com?callback=fn'... // 方式三 cors $.ajax({ url:"http://localhost:8080/test", type: "get", dataType:"json", xhrFields: { withCredentials: true }, crossDomain: true, success:function (data) { console.log(data); } })
2 . 你所熟悉的PHP框架,是如何实现(类库)资源自动加载的?
// composer 实现 spl_autoload_register(array(‘class_name','method_name'));
3 . Linux系统命令:(二选一)
a) 如何判断名为DemoServer的进程在正常运行?
ps -aux | grep DemoServer
b) 判断本机端口 8888是否被占用?
netstat -p | grep 8888
4 . 设计一个支持无限分级目录的文章系统的数据库存储。特别的,要支持从任意目录聚合其分级以下所有(包含子目录)文章.
-- 每次添加新子分类时,递归完善父分类中path(父分类包含所有子分类的路径)的路径(1,2,4 ...) -- 每次添加文章时,把当前选择的分类记录到文章的category_id中 -- sql SELECT * FROM article WHERE category_id IN (SELECT path FROM category WHERE id = '选中分类id');
5 . 数学与算法:(二选一)
a) 假设深圳小汽车车牌为粤BXXXXX,其中XXXXX由3位字母(A - Z, 除去。O和L,共24个)和2位数字(0-9,共10个)组成.请问最多可以发放多少个车牌?
// 24个字母+10个数字共34个元素。34个元素选取其中5个进行全排序:34的5次方 echo pow((24 + 10), 5); // 45435424
b) 有一个包含5000万个不重复的32位正整数集合,如何快速找到中位数?
// 待完善