1. 数组和链表的区别?
2. 如何实现字符串翻转?比如输入123,输出321
3. include和require的区别是什么?
4. echo(),print(),print_r()的区别?
5. 用PHP打印出前一天的时间,格式如2015-09-10 22:21:21
6. substr取出的字符串中有乱码,可能是什么原因造成的?如何解决?
7. $a=1,$b=array(3,1,2)。用PHP判断$b中是否包含$a?
8. $b=array(3,1,2),用PHP实现对$b排序
9. 用PHP写出显示客户端IP与服务器IP的代码
10. session和cookie的关系?浏览器禁用了cookie,还可以实现session吗?如果能,简述一下原理。如果不能,说明原因。
11. HTTP常见的状态码有哪些?各代表什么意思?
12. mysql数据库test的用户名是root,密码为空。test中有一个表student,有三列id,name,age。用PHP实现连接test数据库,并且显示所有age>18的student的id和name。
13. 优化MYSQL数据库的方法
14. 用过哪些PHP框架?你用的这个框架有什么优缺点?
15. 你对MVC的理解?如果自己实现,应该怎么做?需要注意哪些问题?
16. 你对面相对象的理解?和PHP面相过程相比,有什么优缺点?

翻博客发现很久之前广峰的PHP基础笔试题,竟然只写了问题存了草稿,索性答一下。加粗字体为答完后检索补充的结果。
1.二者都属于一种数据结构,如果需要快速访问数据,很少或不插入和删除元素,就应该用数组;相反, 如果需要经常插入和删除元素就需要用链表数据结构了。事实上,PHP里是不存在链表这一数据结构的。
2.strrev
3.require文件不存在会报错终止脚本,include只是一个警告。
4.echo是个语言结构,print是个函数,返回整数型。print_r是函数,可以格式化输出变量。
5.gmdate(“Y-m-d H:i:s”,time()-16*3600)
6.mb_substr,可能是UTF8 ANSI编码问题,也可能是中文问题。
7.in_array
8.sort,asort
9.$_SERVER[“REMOTE_ADDR”] $_SERVER[“SERVER_ADDR”]
10.session保存在服务器,cookie保存在浏览器,禁用cookie理论上session无法关联,想匹配通过链接参数?
11.200 请求成功;301 永久转移;302 临时转移;401 未授权;403 无权限;404 请求不存在;500 PHP报错;502 Nginx请求报错。
12.$dsn = “mysql:host={$DB_HOST};dbname=caiji”;
new PDO($dsn,$DB_USER,$DB_PASS);

select student and name where age>18
13.高频检索的字段加索引,慢查询指令定位出问题的数据库指令并跟进优化,尽量少用自带的分页功能,select后的字段按需设置不用*号。
http://database.51cto.com/art/201407/445934.htm
14.Phalcon Laravel 实现套路基本上差不多,无外乎在MVC三层架构基础之上做些文章,实现的方式有差异而已。
15.MVC,数据层,视图层和控制器。
16.面向对象编程是一种计算机编程架构,OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成,OOP达到了软件工程的三个目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。面向对象一直是软件开发领域内比较热门的话题,首先,面向对象符合人类看待事物的一般规律。其次,采用面向对象方法可以使系统各部分各司其职、各尽所能。使其编程的代码更简洁、更易于维护,并且具有更强的可重用性。
对于大型项目,你可能需要在PHP 中使用纯的OOP去声明类,而且在你的项目里只用对象和类。(摘自:http://blog.csdn.net/qxs101307204/article/details/6974256)
面向过程的代码很乱,不易管理,而面向对象把常用的功能封装为一个类。

Related Posts: PHP笔试题 :