阅读:3313回复:0
PHP面试题汇总一
1、写出五种以上你使用过的PHP的扩展的名称(提示:常用的PHP扩展)
mysql、gd2、pdo、curl、mbstring、soap等,在php.ini中可以找到。尽量多了解一些扩展,了解他们的功能(能做什么)。 php通过使用php_ming 库(Ming库)快速生成 Flash 动画 2,了解MVC模式吗?请写出三种以上目前PHP流行的MVC框架名称(不区分大小写) MVC是Model(模型)、View(视觉)、Controll(控制器)的缩写。 MVC(Model-View-Controller)介绍 模型(Model): 应用程序的模型部分关心的是欲显示的数据的细节。模型通常关注的是应用程序的业务逻辑部分,关注的是如何使用数据库来读取和保存数据。 视图(View): 视图关心的是用户显示的部分,它通常是HTML。 控制器(Controller):控制器将特定的模型和视图结合起来,保证将正确的数据显示到页面上。 常用的MVC框架: Zend Framework FleaPHP qeephp CakePHP ThinkPHP CI YII 大家有时间可以对框架进入多一些的深入了解。 3、用PHP打印出前一天的时间格式是2008-2-8 18:00:10 echo ‘昨天:’, date(‘Y-m-d H:i:s’, strtotime(‘-1 day’)), “ ”; echo ‘昨天:’, date(‘Y-m-d H:i:s’, mktime (date(‘H’), date(‘i’), date(‘s’), date(“m”), date(“d”)-1, date(“Y”))), “ ”; date(‘Y-m-d H:i:s’,Time () -24*3600) 参考strtotime.php mktime.php 4、echo(),print(),print_r()的区别 var_dump() echo与print: 它们都不是真正的函数,是一种语法结构(也有说print是函数,echo不是)。 echo和print 后面都可不用加(),如: echo ‘ok’; print ‘ok’; 运行速度echo稍快一些,因为echo并不返回值,print返回一个值int(1)。 结论: 1、一般用echo,除非三元运算时。$a=5; ($a==5) ? print ’5′: print 0; 2、echo 后一般不要跟()。 print_r是递归打印,主要用于输出数组对象。 print只能有一个参数,所以不能不能用”,”,而echo可以。 Sprintf 以一定的格式 格式化一个字符串 参考 echo_print_print_r.php 5、能够使HTML和PHP分离开使用的模板 其实PHP本身就是一种模版引擎。参考require.php 常用的模板引擎:smarty,还有PHPLib,FastTemplate,Savant等。 模板引擎列表:http://www.sitepoint.com/forums/showthread.php?t=123769 6、如何实现字符串翻转? 可用内置函数strrev。如果不准用PHP内置函数的就自己写: 参考strrev2.php $STR = ‘abc’; $STR{0} Hello->olleH 7、$a = “hello”; $b = &$a; unset($b); $b = “world”; what is $a? 参考references.php 此题的目的是要深刻理解引用。 通常,在将一个变量的值赋给另外一个变量的时候,先产生原变量的一个副本,然后再将它保存在内存的其他地方。如: $a = 5; $b = $a; 首先产生$a的一个副本,然后再将它保存到$b中。如果随后改变$a的值,$b的值不会改变: $a = 7; //这时$b仍然是5 可以使用引用操作符&来避免这样的副本。如: $a = 5; $b = &$a; $b = 7; //这时$a和$b都会是7。 这行也可以换成$b = 7; 引用是非常有趣的。请记住,引用就像一个别名,而不是一个指针。$a和$b都指向了内存的相同地址。可以通过重置它们来改变所指向的地址。如下所示: unset($a); 重置并不会改变$b的值,但是只可以破坏$a和值7保存在内存中的连接。 可以搜索: 引用 site:php.net 进一步深入了解PHP的引用。 也可以直接访问这个页面:http://www.php.net/manual/zh/language.references.php http://www.php.net/manual/zh/language.references.unset.php 当 unset 一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。例如: 不会 unset $b,只是 $a。 8、实现中文字串截取无乱码的方法。 a.可以用正则 b.用mb_substr() 参考mb_substr.php 北京abc substr 9、$a = 1; $x = &$a; $b = $a++; what is $b? $x? 参考references2.php 10、$array = array(); $x = empty($array); what is $x? true or false 参考 empty.php 什么样的内容为空? empty()、isset()、is_null |
|