一份PHP面试题

时间:2017-04-12作者:klpeng分类:互联网杂谈浏览:1649评论:0

1.简要概述从业PHP以来,PHP版本4.X,5.X以及7.X中有哪些具有代表性的改进,以及你对PHP版本更新的理解:

这个题目主要视简历上写的工作年限来问,如果比较年轻的,就聊聊对PHP底层的认识

 

2.列举至少5HTTP协议中的状态码并解释:

这个算是基础了,能答上算正常,答不上的,基础没掌握。

200—请求成功,一切正常ok

301—永久移动,请求的网页已永久移动到新位置(重定向)

304Not Modified,缓存功能,一般是刷新页面,JSCSS、图片路径等不会重新载入

404—未找到,服务器找不到请求的网页

500—服务器内部错误,服务器遇到错误,无法完成请求

502—错误网关,服务器作为网关或代理,从上游服务器收到无效响应。

 

3.列举至少5array开头的数组处理函数并解释其用法:

array_keys() 返回数组中所有的键名

array_merge() 把一个或多个数组合并为一个数组

array_pop() 删除数组的最后一个元素

array_push() 将一个或多个元素插入数组的末尾

array_search() 搜索数组中给定的值并返回键名

array_values() 返回数组中所有的值

array_unique() 删除数组中的重复值

 

4.简要概述PHP代码的执行过程:

1.Scanning(Lexing) ,PHP代码转换为语言片段(Tokens)

2.Parsing, Tokens转换成简单而有意义的表达式

3.Compilation, 将表达式编译成Opocdes

4.Execution, 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。

 

5.给一个变量赋值为0123,但是输出该变量的值总是为其他数字,请解释原因:

PHP 解释器会把以0开始的数字当做是八进制的,所以它的值会变成八进制的。

 

6.写出一段代码,确保多个进程同时写入一个文件成功:

function T_put($filename,$string){  

$fp = fopen($filename,a'); //追加方式打开 

if (flock($fp, LOCK_EX)){ //加写锁  

fputs($fp,$string); //写文件  

flock($fp, LOCK_UN); //解锁  

}  

fclose($fp);  

}  

 

7.命令行执行PHP时,传入参数有哪几种方式:

使用$argv or $argc参数接收(排列形式或者URL形式),使用getopt函数(获取或者提示用户输入)

 

 

8.简要介绍你对mysql常用的几种索引类型以及存储引擎的理解,优劣势分析:
  这个主要考察下理论知识,看写的如何,面谈的时候再深入讨论。

 

9.介绍PHP的垃圾回收机制:

引用计数(Reference Counting),如果能写出多个版本之间新版的改进和优化,例如5.3X对比5.2XConcurrent Cycle Collection in Reference Counted Systems算法,加分

 

10.写出一个常用的排序算法和查找算法:

手写基本算法,冒泡排序、快速排序,选择排序等之一,顺序查找、二分查找等之一


原创文章如转载,请注明出处,本文首发于彭超的博客

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢