公司招人做php,让我面试一把,平生第一次面试别人,20分钟内准备了下面一些面试题目,分享一下。如果全部都很熟悉,说明基本具备了php开发的中等水平,一般可以去面试所谓的高级php开发工程师这个职位。
没有包含css,xml等的知识,也没有包含网络技术方面的知识,仅仅是php,javascript。
1:写php有几年了?php名字是什么意思?personal home page
2:熟悉javascript吗? ajax(Asynchronous javascript and XML)是什么东西,有什么作用?能简单说一下google地图的原理吗?
3 firefox用吗?通常有开发相关的插件?如何调试javascript?
4:熟悉什么javascript 框架?jquery听说过吗?是干什么的?一个div,class是”aa bb cc”,id是”nodesView”,那么如何得到这个div的jquery对象?而直接获得这个div的dom对象,如何取得?dom对象如何转化为jquery对象?
---------
dom对象如何转化为jquery对象
普通的dom对象一般可以通过$()转换成jquery对象。
如:$(document.getElementById(“msg”))则为jquery对象,可以使用jquery的方法。
由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。
如:$(“#msg”)[0],$(“div”).eq(1)[0],$(“div”).get()[1],$(“td”)[5]这些都是dom对象,可以使用dom中的方法,但不能再使用Jquery的方法。
以下几种写法都是正确的: 字串8$(“#msg”).html();
$(“#msg”)[0].innerHTML;
$(“#msg”).eq(0)[0].innerHTML;
$(“#msg”).get(0).innerHTML;
-------
5 关于浏览器交互流程:页面一个表单,action是什么意思?method是什么意思?如果method是get,一个表单的数据会如何传到服务器上?如果服务器上脚本是php,那么php如何获得这个表单的数据?post呢?6 php连接数据库方法常用的几种?pdo熟悉吗?如果一个查询里面有一些筛选,也就是where后面的一些参数,要如何绑定上去?
7 php单引号和双引号的区别?
有$a = 1那么echo “‘$a’”是什么?
有$b = array(’1′,’2′,’3′)
那么 echo “‘$b[1]‘”?该怎么写能输出第一个元素的内容?8 如何获得当前脚本的名字(路径)?
$_SERVER['PHP_SELF'];9 如何判断数组里面有没有某个元素,比如判断$a = array()里面有没有键method ?
isset($a['method']),array_key_exists(‘method’,$a)10 面向对象
对象有两个方面:成员变量 和方法。在编译语言(例如 Java)中,如果想调用不存在的方法或引用不存在的成员变量,会得到编译时错误。但是,在非编译语言,例如 PHP 中,会发生什么?
在 PHP 中的方法调用是这样工作的。首先,PHP 解释器在类上查找方法。如果方法存在,PHP 就调用它。如果没有,那么就调用类上的魔法方法 __call(如果这个方法存在的话)。如果 __call 失败,就调用父类方法,依此类推。
魔法方法
魔法方法是有特定名称的方法,PHP 解释器在脚本执行的特定点上会查找魔法方法。最常见的魔法方法就是对象创始时调用的构造函数。__call 方法有两个参数:被请求的方法的名称和方法参数。如果创建的 __call 方法接受这两个参数,执行某项功能,然后返回 TRUE,那么调用这个对象的代码就永远不会知道在有代码的方法和 __call 机制处理的方法之间的区别。通过这种方式,可以创建这样的对象,即动态地模拟拥有无数方法的情况。
除了 __call 方法,其他魔法方法 —— 包括 __get 和 __set —— 调用它们的时候,都是因为引用了不存在的实例变量。脑子里有了这个概念之后,就可以开始编写能够适应任何表的动态数据库访问类了。
11 mvc是什么东西?有什么优缺点?熟悉php框架吗?熟悉php模板吗?smarty!
12 知名的php cms,能说几个吗?
13 说出几个linux发行版?最常用哪个?为什么喜欢用这个发行版?包管理工具是什么?