php面试题及答案

1 请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用?
传值只是把某一个变量的值传给了另一个变量,而引用则说明两者指向了同一个地方。
2 在PHP中error_reporting这个函数有什么作用?
设定php脚本的错误报告级别,说实话,我没怎么用过,我现在用的是C
#开发,。
3 请用正则表达式(Regular Expression)写一个函数验证电子邮件的格式是否正确。
/*
检查邮件地址是否为邮件地址,返回逻辑值
*/
function CheckMailAdr($str){
return(eregi(^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$,$str));
}



4 简述如何得到当前执行脚本路径,包括所得到参数。
说明:例如有一个脚本 www
.domain.com,传给他的参数有参数1,参数2,参数3…。传递参数的方法有可能是GET有可能是POST,那么现在请写出类似:http://www.domain.com/script.php?参数1=值1&参数2=值2…..  的结果
关于前执行脚本路径感觉有点歧义:若是得到该脚本在服务器上的绝对路径用 $_SERVER[‘APPL_PHYSICAL_PATH’].若是该脚本的URL则可以用获取
获取所有参数:可以用以下方法:
//获取post的数据
while (list($var, $value) = each($HTTP_POST_VARS))
{
echo $var = $value n;
}
//获取get方式的数据
while (list($var, $value) = each($HTTP_GET_VARS))
{
echo $var = $value n;
}
5 有一个一维数组,里面存储整形数据,请写一个函数,将他们按从大到小的顺序排列。要求执行效率高。并说明如何改善执行效率。
(该函数必须自己实现,不能使用php函数)
可以用冒泡排序

<?php
function BubbleSort($str)
{
for ($i=0;$i<count($str);$i++)
{
for ($j=count($str)2;$j>=$i;$j)
{
if($str[$j+1]<$str[$j])
{
$tmp = $str[$j+1];

$str[$j+1]=$str[$j];
$str[$j]=$tmp;
}

}

}
return $str;
}
$str = array(3,6,1,5,9,0,4,6,11);
print_r(BubbleSort($str));
?>

6 请举例说明在你的开发过程中用什么方法来加快页面的加载速度
A.生成静态HTML,见http
://www.look-cn.com(首页以及栏目分类)或http://new.look-cn.com或http://www.16899168.com/media(媒体预测,用正则抓取自某知名网站)或http://www.16899168.com/leagues(比赛分析)
B.生成XML见http://www.16899168.com和买部分
C.可不用数据库的尽量不用数据库,把变量参数存于文本.lookcn有部分就这样做的
D.用ZEND加速

转自: http://blog.csdn.net/forlinux/archive/2006/09/11/1205377.aspx

发表评论

返回顶部