php学了那么久了,先来小试牛刀,看下这些PHP程序员面试题都会不会?
初级题目
1.问题:请用最简单的语言描述PHP是什么?
答:PHP全称:Hypertext Preprocessor,是一种用来开发动态网站的服务器脚本语言。
2.问题:echo,print()和print_r()有什么区别?
答:echo是一个语言结构,没有返回值。
print是一个函数,返回int类型的值[只能打印int string]。
print_r()是一个函数,返回bool类型值,按结构输出变量的值,打印关于变量的易于理解的信息[数组、对象等]
3.问题:什么是MVC?
答:MVC由Model(模型), View(视图)和Controller(控制器)组成,PHP MVC可以更高效地管理好3个不同层的PHP代码。
Model:数据信息存取层。
View:view层负责将应用的数据以特定的方式展现在界面上。
Controller:通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
4.问题:在页面中引用CSS有几种方式?
答:在页面中使用CSS有3中方式:
引用外部CSS文件
内部定义Style样式
内联样式
5.问题:PHP支持多继承吗?
答:不支持。PHP类只能继承一个父类,并用关键字“extends”标识。
6.问题:请问PHP中echo和print有什么区别?
这两个看起来很相似,因为它们都是将一些值打印在屏幕上。但是echo和print的本质区别在于:echo用来输出字符串,显示多个值的时候可以用逗号隔开。只支持基本类型,print不仅可以打印字符串值,而且可以打印函数的返回值。
7.问题:PHP中的PEAR是什么?
答:PEAR也就是为PHP扩展与应用库(PHP Extension and Application Repository),它是一个PHP扩展及应用的一个代码仓库。
8.问题:PHP中的错误类型有哪些?
答:PHP中遇到的错误类型大致有3类。
提示:这都是一些非常正常的信息,而非重大的错误,有些甚至不会展示给用户。比如访问不存在的变量。
警告:这是有点严重的错误,将会把警告信息展示给用户,但不会影响代码的输出,比如包含一些不存在的文件。
错误:这是真正的严重错误,比如访问不存在的PHP类。
9.问题:如何在PHP中定义常量?
答:PHP中使用Define () 来定义常量。
define (“Newconstant”, 30);
10.问题:如何不使用submit按钮来提交表单?
答:如果我们不想用submit按钮来提交表单,我们也可以用超链接来提交,我们可以这样写代码:<a href=”javascript: document.myform.submit();”>Submit Me</a>
11.问题:error_reporting(2047)什么作用?
答:PHP 显示所有错误 E_ALL
中级题目
1.问题:请使用正则写一个函数验证电子邮件的格式是否正确?
答:preg_match(‘/^[\w\-\.]+@[\w\-]+(\.\w+)+$/’,$email);
2.问题:如何用PHP和MySQL上传视频?
答:我们可以在数据库中存放视频的地址,而不需要将真正的视频数据存在数据库中。可以将视频数据存放在服务器的指定文件夹下,上传的默认大小是2MB,但是我们也可以在php.ini文件中修改max_file size选项来改变。
3.问题:请问GET和POST方法有什么区别?
答:我们再网页上填写的表单信息都可以通过这两个方法将数据传递到服务器上,当我们使用GET方法是,所有的信息都会出现在URL地址中,并且使用GET方法最多只能传递1024个字符,所以如果在传输量小或者安全性不那么重要的情况下可以使用GET方法。说到POST方法,最多可以传输2MB字节的数据,而且可以根据需要调节。
4.问题:打开php.ini中的Safe_mode,会影响哪些函数?列举6个!
答:1用户输入输出函数(fopen() file() require(),只能用于调用这些函数有相同脚本的拥有者)
2:创建新文件(限制用户只在该用户拥有目录下创建文件)
3:用户调用popen() systen() exec()等脚本,只有脚本处在safe_mode_exec_dir配置指令指定的目录中才可能
4:加强HTTP认证,认证脚本拥有者的UID的划入认证领域范围内,此外启用安全模式下,不会设置PHP_AUTH
5:mysql服务器所用的用户名必须与调用mysql_connect()的文件的拥有者用户名相同
6:受影响的函数变量以及配置命令达到40个
5.问题: 请使用PHP写出冒泡排序算法的代码。
答://冒泡排序
function maopao($arr) {
$count = count($arr);
for($i=0; $i<$count-1; ++$i) {
for($j=0; $j<$count-$i-1; ++$j) {
if($arr[$j] > $arr[$j+1]) {
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
}
}
}
return $arr;
}
6.问题: 请使用PHP写出顺序排序算法的代码。
答://顺序排序
function shunxu($arr) {
$count = count($arr);
for($i=0; $i<$count-1; ++$i) {
$p = $i;
for($j=$i+1; $j<$count; ++$j) {
$p = $arr[$p] > $arr[$j] ? $j : $p;
}
if($p != $i) {
$tvalue = $arr[$i];
$arr[$i] = $arr[$p];
$arr[$p] = $tvalue;
}
}
return $arr;
}
7.问题:写个函数用来对二维数组排序。
答:
function array_sort_by_any_row($array_name, $row_id, $order_type){
$array_temp=array();
foreach($array_name as $key=>$value){
$array_temp[$key]=$value[$row_id];
}
if($order_type===”ASC”){ //顺序
asort($array_temp);
} else {
arsort($array_temp);
}
$result_array=array();
foreach($array_temp as $key=>$value){
$result_array[$key]=$array_name[$key];
}
return $result_array;
}
$arr = array(
array(‘num’=>5, ‘value’=>6),
array(‘num’=>2, ‘value’=>39),
array(‘num’=>36, ‘value’=>29)
);
$sortarr = array_sort_by_any_row($arr, ‘num’, ‘DESC’);
print_r($sortarr);
8.问题: 写5个不同的函数,来截取一个全路径的文件的扩展名,允许封装php库中已有的函数。
答:$path = str_replace(‘\\’, ‘/’,__FILE__);
echo $path.’<br />’;
function extname1($path) {
return strrchr($path, ‘.’);
}
function extname2($path) {
$position = strrpos($path, ‘.’);
return substr($path, $position);
}
function extname3($path) {
$arr = explode(‘.’, $path);
return $arr[count($arr) – 1];
}
function extname4($path) {
preg_match_all(‘/[\w\/\:\-]+\.([\w]+)$/’, $path, $out);
return $out[1][0];
}
function extname5($path) {
return preg_replace(‘/^[^\.]+\.([\w]+)$/’, ‘${1}’, basename($path));
}
print_r(extname5($path));
9.问题:一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。
答:yuesefu环问题,PPC有很多针对这个问题的处理,我的就不上啦
function yuesefu($n,$m) {
$r=0;
for($i=2; $i<=$n; $i++) {
$r=($r+$m)%$i;
}
return $r+1;
}
print_r(yuesefu(3,3));值。
print是一个函数,返回int类型的值[只能打印int string]。
print_r()是一个函数,返回bool类型值,按结构输出变量的值,打印关于变量的易于理解的信息[数组、对象等]
3.问题:什么是MVC?
答:MVC由Model(模型), View(视图)和Controller(控制器)组成,PHP MVC可以更高效地管理好3个不同层的PHP代码。
Model:数据信息存取层。
View:view层负责将应用的数据以特定的方式展现在界面上。
Controller:通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
4.问题:在页面中引用CSS有几种方式?
答:在页面中使用CSS有3中方式:
引用外部CSS文件
内部定义Style样式
内联样式
5.问题:PHP支持多继承吗?
答:不支持。PHP类只能继承一个父类,并用关键字“extends”标识。
6.问题:请问PHP中echo和print有什么区别?
这两个看起来很相似,因为它们都是将一些值打印在屏幕上。但是echo和print的本质区别在于:echo用来输出字符串,显示多个值的时候可以用逗号隔开。只支持基本类型,print不仅可以打印字符串值,而且可以打印函数的返回值。
7.问题:PHP中的PEAR是什么?
答:PEAR也就是为PHP扩展与应用库(PHP Extension and Application Repository),它是一个PHP扩展及应用的一个代码仓库。
8.问题:PHP中的错误类型有哪些?
答:PHP中遇到的错误类型大致有3类。
提示:这都是一些非常正常的信息,而非重大的错误,有些甚至不会展示给用户。比如访问不存在的变量。
警告:这是有点严重的错误,将会把警告信息展示给用户,但不会影响代码的输出,比如包含一些不存在的文件。
错误:这是真正的严重错误,比如访问不存在的PHP类。
9.问题:如何在PHP中定义常量?
答:PHP中使用Define () 来定义常量。
define (“Newconstant”, 30);
10.问题:如何不使用submit按钮来提交表单?
答:如果我们不想用submit按钮来提交表单,我们也可以用超链接来提交,我们可以这样写代码:<a href=”javascript: document.myform.submit();”>Submit Me</a>
11.问题:error_reporting(2047)什么作用?
答:PHP 显示所有错误 E_ALL
高级题目
1.问题:请使用正则写一个函数验证电子邮件的格式是否正确?
答:preg_match(‘/^[\w\-\.]+@[\w\-]+(\.\w+)+$/’,$email);
2.问题:如何用PHP和MySQL上传视频?
答:我们可以在数据库中存放视频的地址,而不需要将真正的视频数据存在数据库中。可以将视频数据存放在服务器的指定文件夹下,上传的默认大小是2MB,但是我们也可以在php.ini文件中修改max_file size选项来改变。
3.问题:请问GET和POST方法有什么区别?
答:我们再网页上填写的表单信息都可以通过这两个方法将数据传递到服务器上,当我们使用GET方法是,所有的信息都会出现在URL地址中,并且使用GET方法最多只能传递1024个字符,所以如果在传输量小或者安全性不那么重要的情况下可以使用GET方法。说到POST方法,最多可以传输2MB字节的数据,而且可以根据需要调节。
4.问题:打开php.ini中的Safe_mode,会影响哪些函数?列举6个!
答:1用户输入输出函数(fopen() file() require(),只能用于调用这些函数有相同脚本的拥有者)
2:创建新文件(限制用户只在该用户拥有目录下创建文件)
3:用户调用popen() systen() exec()等脚本,只有脚本处在safe_mode_exec_dir配置指令指定的目录中才可能
4:加强HTTP认证,认证脚本拥有者的UID的划入认证领域范围内,此外启用安全模式下,不会设置PHP_AUTH
5:mysql服务器所用的用户名必须与调用mysql_connect()的文件的拥有者用户名相同
6:受影响的函数变量以及配置命令达到40个
5.问题: 请使用PHP写出冒泡排序算法的代码。
答://冒泡排序
function maopao($arr) {
$count = count($arr);
for($i=0; $i<$count-1; ++$i) {
for($j=0; $j<$count-$i-1; ++$j) {
if($arr[$j] > $arr[$j+1]) {
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
}
}
}
return $arr;
}
6.问题: 请使用PHP写出顺序排序算法的代码。
答://顺序排序
function shunxu($arr) {
$count = count($arr);
for($i=0; $i<$count-1; ++$i) {
$p = $i;
for($j=$i+1; $j<$count; ++$j) {
$p = $arr[$p] > $arr[$j] ? $j : $p;
}
if($p != $i) {
$tvalue = $arr[$i];
$arr[$i] = $arr[$p];
$arr[$p] = $tvalue;
}
}
return $arr;
}
7.问题:写个函数用来对二维数组排序。
答:
function array_sort_by_any_row($array_name, $row_id, $order_type){
$array_temp=array();
foreach($array_name as $key=>$value){
$array_temp[$key]=$value[$row_id];
}
if($order_type===”ASC”){ //顺序
asort($array_temp);
} else {
arsort($array_temp);
}
$result_array=array();
foreach($array_temp as $key=>$value){
$result_array[$key]=$array_name[$key];
}
return $result_array;
}
$arr = array(
array(‘num’=>5, ‘value’=>6),
array(‘num’=>2, ‘value’=>39),
array(‘num’=>36, ‘value’=>29)
);
$sortarr = array_sort_by_any_row($arr, ‘num’, ‘DESC’);
print_r($sortarr);
8.问题: 写5个不同的函数,来截取一个全路径的文件的扩展名,允许封装php库中已有的函数。
答:$path = str_replace(‘\\’, ‘/’,__FILE__);
echo $path.’<br />’;
function extname1($path) {
return strrchr($path, ‘.’);
}
function extname2($path) {
$position = strrpos($path, ‘.’);
return substr($path, $position);
}
function extname3($path) {
$arr = explode(‘.’, $path);
return $arr[count($arr) – 1];
}
function extname4($path) {
preg_match_all(‘/[\w\/\:\-]+\.([\w]+)$/’, $path, $out);
return $out[1][0];
}
function extname5($path) {
return preg_replace(‘/^[^\.]+\.([\w]+)$/’, ‘${1}’, basename($path));
}
print_r(extname5($path));
9.问题:一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。
答:yuesefu环问题,PPC有很多针对这个问题的处理,我的就不上啦
function yuesefu($n,$m) {
$r=0;
for($i=2; $i<=$n; $i++) {
$r=($r+$m)%$i;
}
return $r+1;
}
print_r(yuesefu(3,3));

20个PHP面试题及答案的更多相关文章

  1. Android 面试题及答案(2)

    1.Activity相关.launchmode,OnSaveInstnceState,生命周期等. 4种默认的launchmode,以及OnNewIntent的回调. OnNewIntent-> ...

  2. php面试题及答案收藏(转)

    php面试题及答案收藏(这套试题是在网上看到的,不知作者是谁) 基础题 1.表单中 get与post提交方法的区别? 答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据, ...

  3. Linux面试题汇总答案

    转自:小女生的Linux技术~~~Linux面试题汇总答案~~ 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的 ...

  4. 最全的iOS面试题及答案-转载

    1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承:可以实现多个接口,通过实现 ...

  5. 经典71道Android试题及答案

    本文为开发者奉献了70道经典Android面试题加答案--重要知识点几乎都涉及到了,你还等啥,赶紧收藏吧!! 1. 下列哪些语句关于内存回收的说明是正确的? (b) A. 程序员必须创建一个线程来释放 ...

  6. iOS面试题及答案2015.6.7

    iOS面试题及答案     1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承 ...

  7. 来自投资银行的20个Java面试题

    问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的.比如,你在一个线程里初始化了一个 ...

  8. 《招聘一个靠谱的iOS》面试题参考答案(下)

    相关文章: <招聘一个靠谱的iOS>面试题参考答案(上) 说明:面试题来源是微博@我就叫Sunny怎么了的这篇博文:<招聘一个靠谱的 iOS>,其中共55题,除第一题为纠错题外 ...

  9. 面试(4)-spring-Spring面试题和答案

    1:69道Spring面试题和答案 转自:http://ifeve.com/spring-interview-questions-and-answers/ 目录 Spring 概述 依赖注入 Spri ...

随机推荐

  1. while循环。for循环

    1.while循环 基本循环格式 while 条件 : # 循环体 # 如果条件为真,那么循环体则执行 # 如果条件为假,那么循环体不执行 break:退出本层循环. continue:退出本次循环, ...

  2. windows下redis的安装和启动

    Rides: //cmd管理员进入 // 运行 : redis-cli.exe //报错  :Redis (error) NOAUTH Authentication required.解决方法 // ...

  3. github的代码上传成功但是不显示绿格子(一直拖....心痛的教训.....)

    损失了我特么的很多格子啊啊啊啊,必死强迫症啊!!!! 究其原因就是客户端绑定邮箱错误 本地 :git config user.email 显示邮箱是否和github中设定的一样? git config ...

  4. 1.4 使用电脑测试MC20的接收英文短信功能

    需要准备的硬件 MC20开发板 1个 https://item.taobao.com/item.htm?id=562661881042 GSM/GPRS天线 1根 https://item.taoba ...

  5. CS224n学习资源汇总

    一.课程网站: http://web.stanford.edu/class/cs224n/archive/WWW_1617/index.html 二.视频(中文字幕) http://www.mooc. ...

  6. C# Ajax 技术

    Ajax 是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写.下面是 Ajax 应用程序所用到的基本技术:• HTML 用于建立 Web 表单并确定应用程 ...

  7. 谷歌机器学习速成课程---2深入了解机器学习(Descending into ML)

    1.线性回归 人们早就知晓,相比凉爽的天气,蟋蟀在较为炎热的天气里鸣叫更为频繁.数十年来,专业和业余昆虫学者已将每分钟的鸣叫声和温度方面的数据编入目录.Ruth 阿姨将她喜爱的蟋蟀数据库作为生日礼物送 ...

  8. 17南宁区域赛 I - Rake It In 【DFS】

    题目链接 https://nanti.jisuanke.com/t/19975 题意 Alice 和 Bob 玩游戏 在一个4x4 的方格上 每个人 每次选择2x2的区域 将里面的四个值求和加到最后的 ...

  9. Adjust Linux Mint Mouse Scroll (Normal/Reverse)

    Set Scroll Normal 1 echo "pointer = 1 2 3 4 5 6 7 8 9 10 11 12" > ~/.Xmodmap && ...

  10. mysql中int(3)与int(11)有什么区别吗?

    注意:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是大错特错的. 其实当我们在选择使用int的类型的时 ...