首页 >  面试题 > 网络营销-企业面试宝典 > 

PHP面试题汇总

PHP面试题汇总

作者:yjl 来源:华育国际 时间:2015-03-10 访问次数:3926
1、写出五种以上你使用过的PHP的扩展的名称(提示:常用的PHP扩展) mysql、gd2、pdo、curl、mbstring、soap等,在php.ini中可以找到。尽量多了解一些扩展,了解他们的功能(能做什么)。

1、写出五种以上你使用过的PHP的扩展的名称(提示:常用的PHP扩展)

mysql、gd2、pdo、curl、mbstring、soap等,在php.ini中可以找到。尽量多了解一些扩展,了解他们的功能(能做什么)。

php通过使用php_ming 库(Ming库)快速生成 Flash 动画

了解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’)), “<br />”;

echo ‘昨天:’, date(‘Y-m-d H:i:s’, mktime (date(‘H’), date(‘i’), date(‘s’), date(“m”), date(“d”)-1, date(“Y”))), “<br />”;

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 一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。例如:

<?php

$a = 1;

$b =& $a;

unset($a);

?>

不会 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