栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > PHP面试题库

PHP面试题汇总(1)

PHP面试题汇总(1)

1.能够使html和php分离开使用的模板? 答:Smarty、template、PHPlibTemplate、FastTemplate 2.使用那些工具进行版本控制?   答:Clear case        2.CVS3.SVN       4.PVCS       5 Perforce        6.CCC        7.StarTeam       8.RCS 3.写出Zend框架的目录结构,简单说明目录作用?答:application/ – 存放应用程序的目录,包括 MVC 系统、配置文件、服务以及引导程序(Bootstrap.php)    configs/ –配置文件目录。    application/modules   – 多模块目录结果例如admin(后台前程),default(前台),shop(商城)各个模块下都有自己的controllers,modules,Views    controllers/models/views/ – 控制器/模型/视图 目录。    application/cache –存放缓存等数据    application/helpers/ – 这个是存放“行动助手”(action helper)的目录。这些助手类默认的命名空间是“Controller_Helper_”,如果是多模块那么命令空间将是“<Module>_Controller_Helper”。Bootstrap.php – 这个是应用程序入口文件。这个类的主要工作是引导应用程序,注册并初始化组件(component)。注意:不要在这个文件调用前置控制器(front controller)的dispatch() 方法。library/ – 存放类库的目录。第三方的类库和自己写的类库放在这里进行自动 加载 但要注意要用自己独立的命名空间(建子目录)。public/ – 存放公开文件的目录,也即网站的根目录,存放可以被用户访问的文件,例如js、css和图片等等。index.php 是应用程序的单入口,其主要工作是建立php环境,引用Bootstrap.php来初始化,并调用前置控制器的dispatch()方法来分发请求。4.谈谈对mvc的认识?答:MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。视图是用户看到并与之交互的界面。模型表示企业数据和业务规则。控制器接受用户的输入并调用模型和视图去完成用户的需求。MVC的优点:低耦合性、高重用性和可适用性、较低的生命周期成本、快速的部署、可维护性、可扩展性,有利于软件工程化管理MVC的缺点:没有明确的定义,完全理解MVC并不容易。不适合小型规模的应用程序。 5. PHP如何抛出和接收错误?答:使用try...catch,异常的代码放在try代码块内,如果没有触发异常,则代码继续执行,如果异常被触发,就会抛出一个异常。Catch代码块捕获异常,并创建一个包含异常信息的对象。$e->getMessage(),输出异常的错误信息。 6.下面的类是否正确,如果正确请补全方法输入类属性$_a;错误请修改并输出属性$_a <?phpClass A{       protected$a=1;       publicfunction test()       {       echo$this->a;       } }答: $a=new A;$a->test(); ?> 7.请取出数组中的最大值?$a=array(1,9,3,5,6,8);$a=array(1,2,3,4,5,9); 答: $b=max($a);echo $b;or$a=array(1,9,3,5,6,8);rsort($a);Echo array_shift($a); 8.请说明PHP中传值和引用的区别。什么时候传值什么时候引用?    答:    按值传递:函数范围内对值的任何改变在函数外部都会被忽略。    按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改。    优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。    按引用传递则不需要复制值,对于性能提高很有好处。     如果不想改变原变量的值的时候就传值,如     $a=1;     function aa($a){     echo ++$a;     }     aa($a);     如果可以让函数改变了原变量的值就可以引用传值,     $a=1;     function aa(&$a){     echo ++$a;     }     aa($a);9.有一个一维数组,里面存储整形数据,请写一个函数,将他们按从大到小的顺序排列。要求执行效率高。并说明如何改善执行效率。(该函数必须自己实现,不能使用PHP函数)答:$a=array(1,9,3,5,6,8,7);<?phpfunction getMinStr($str) { for ($i=0;$i<count($str);$i++) { for($j=$i+1;$j<count($str);$j++) { if($str[$i]<$str[$j]) { $tmp = $str[$i]; $str[$i]=$str[$j]; $str[$j]=$tmp; } } } return $str; } $str = array(4,3,8,9,2);print_r(getMinStr($str)); 10.请问同时满足这样条件的数:被10除于9,被9除于8,被8除于7,在100—1000之间,有几个这样的数?(并写出算法)答: A不存在,B 1个 C2个   D 3个 分析过程:   P除以10余9:P+1就被10整除   P除以9余8:P+1就被9整除   P除以8余7:P+1就被8整除   所以P=8,9,10的功倍数-1   8=2*2*2,9=3*3,10=2*5   则P+1一定是2*2*2*3*3*5的倍数(只能约掉一个2 )   又100<=P<=1000   101<=P+1<=1001   所以P+1=360,720   所以P=359,719 11.请写出一个简单的静态数组?答:Class A{Static $a=array('11'=>'1111');} Print_r(A::$a); 12.写一个简单的jquery显示隐藏代码?答:$("#aa").hide();$("#aa").show(); 13.语句include和require的区别是什么?   答:PHP在遇到include时就必须重新解释一次,如果在同一个页面出现10次include,它便会重新解释10次。PHP遇到require时,不管在同一个php网页中出现几次require,PHP只会解释一次而已。Require执行效率比include高。Require包含进来的内容被当成当前文件的一个组成部分,所以当包含进来的文件有语法错误或者文件不存在的时候,那个PHP脚本都不再执行。Include函数相当于指定这个文件的路径,当被包含的文件有错时不会影响到本身的程序执行。Include可以进行判断是否包含,而require则是不管任何情况都包含进来。 14.用PHP获取当前时间并打印,打印格式:2006-5-10 22:21:21答:Echo Date("Y-m-d H:i:s"); 15.字符串转数组,数组转字符串,字符串截取,字符串替换,字符串查找的函数分别是什么?   答:   Implode()、explode()、substr()、str_replace()、strpos、strrpos、strstr 16.解释一下PHP的类中:protect,public,private,interface,abstract,final,static的含义   答:   Protected受保护的,在本类和子类中有效。    Public 公共的,在本类、子类中、类外都可以使用。    Private 私有的,在本类中有效。    Interface 定义一个接口时使用的关键字。    Abstract 定义一个抽象类或者抽象方法时使用的关键字。    Final 用final申明的方法无法被覆盖,用final申明的类不能被继承。    Static 定义静态方法或者静态属性使用的关键字 17.写出下列代码的数据结果   答:   $date='08/26/2003';    print ereg_replace(“([0-9]+)/([0-9]+)/([0-9]+)”,2/1/3,$date,);  18.从表login中选出name字段包含admin的前10条结果所有信息的sql语句   答:    Select *from login where name like '%admin%' limit 0,10; 解释:左连接,右连接,内连接,索引。  答:   1、內连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来。内部连接是两个表中都必须有连接字段的对应值的记录,数据才能检索出来。   2、左连接和右连接都是外部连接,也就是区别于内部连接,它对不满足连接条件的行并不是象内部连接一样将数据完全过滤掉,而是保留一部分数据,行数不会减少。   3、左连接是只要左边表中有记录,数据就能检索出来,而右边有的记录必要在左边表中有的记录才能被检索出来   4、右连接是只要右边表中有记录,数据就能检索出来 ;   5、全连接则会回返回两个表中的所有记录 20.简述论坛中无限分类的实现原理。  答:   1、数据库分类表的设计:id字段、父id字段、类名称字段、path字段   2、Path字段存当前分类的路径,格式:0,父类id,本身id   3、查询分类:select * from 分类表order by path asc;   4、这样就查出来每个分类及其对应的子类。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/266452.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号