10道 php笔试题

1. 写出如下程序的输出结果

<?php
$str1 = null;
$str2 = false;
echo $str1==$str2 ? ‘相等‘ : ‘不相等‘;  //相等
$str3 = ‘‘;
$str4 = 0;
echo $str3==$str4 ? ‘相等‘ : ‘不相等‘;  //相等
$str5 = 0;
$str6 = ‘0‘;
echo $str5===$str6 ? ‘相等‘ : ‘不相等‘;  //不相等
?>

2. 写出如下程序的输出结果

<?php
$a1 = null;
$a2 = false;
$a3 = 0;
$a4 = ‘‘;
$a5 = ‘0‘;
$a6 = ‘null‘;
$a7 = array();
$a8 = array(array());
echo empty($a1) ? ‘true‘ : ‘false‘;  //true
echo empty($a2) ? ‘true‘ : ‘false‘;  //true
echo empty($a3) ? ‘true‘ : ‘false‘;  //true
echo empty($a4) ? ‘true‘ : ‘false‘;  //true
echo empty($a5) ? ‘true‘ : ‘false‘;  //true
echo empty($a6) ? ‘true‘ : ‘false‘;  //false
echo empty($a7) ? ‘true‘ : ‘false‘;  //true
echo empty($a8) ? ‘true‘ : ‘false‘;  //false
?>

3. 写出如下程序的输出结果

1 <?php
2 $test = ‘aaaaaa‘;
3 $abc = & $test;
4 unset($test);
5 echo $abc;  //aaaaaa
6 ?>

4. 写出如下程序的输出结果
 1 <?php
 2 $count = 5;
 3 function get_count(){
 4   static $count = 0;
 5   return $count++;
 6 }
 7 echo $count;  //5
 8 ++$count;
 9 echo get_count();  //0
10 echo get_count();  //1
11 ?>

5. 写出如下程序的输出结果
 1 <?php
 2 $GLOBALS[‘var1‘] = 5;
 3 $var2 = 1;
 4 function get(){
 5   global $var2;
 6   $var1 = 0;
 7   return $var2++;
 8 }
 9 get();
10 echo $var1; //5
11 echo $var2; //2
12 ?>

6. 写出如下程序的输出结果
 1 <?php
 2 function get_arr($arr) {
 3   unset($arr[0]);
 4 }
 5 $arr1 = array(1, 2);
 6 $arr2 = array(1, 2);
 7 get_arr(&$arr1);
 8 get_arr($arr2);
 9 echo count($arr1);  //1
10 echo count($arr2);  //2
11 ?>

7. 使用五种以上方式获取一个文件的扩展名

要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,

必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数

<?php
$file=‘dir/upload.image.jpg‘;
//方法1
$a=pathinfo($file);
echo $a[‘extension‘];
//方法2
echo substr($file,strrpos($file,‘.‘)+1);
//方法3
echo array_pop(explode(‘.‘,$file));
//方法4
echo preg_replace(‘/(.)*\.{1}/ix‘,‘‘,$file);
//方法5
echo strrchr($file,‘.‘);
//方法6
echo strrev(substr(strrev($file),0,strpos(strrev($file),‘.‘)));
?>

8. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组
1 <?php
 2 //冒牌排序
 3 $array=array(3,45,2,21,5,2);
 4 $max=count($array);
 5 for($i=0;$i<$max;$i++){
 6   for($j=$i+1;$j<$max;$j++){
 7     if($array[$i]>$array[$j]){
 8       $temp=$array[$i];
 9       $array[$i]=$array[$j];
10       $array[$j]=$temp;
11     }
12   }
13 }
14 var_dump($array);
15 //快速排序
16 function quick_sort($array){
17   if (count($array) <= 1) return $array;
18   $key = $array[0];
19   $max=count($array);
20   $left_arr = array();
21   $right_arr = array();
22   for ($i=1; $i<$max; $i++) {
23     if ($array[$i] <= $key){
24       $left_arr[] = $array[$i];
25     }else{
26       $right_arr[] = $array[$i];
27     }
28   }
29   $left_arr = quick_sort($left_arr);
30   $right_arr = quick_sort($right_arr);
31   return array_merge($left_arr, array($key), $right_arr);
32 }
33 var_dump(quick_sort($array));
34 ?>

9. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
1 <?php
 2 //顺序查找
 3 $array=array(1,2,5,21,45);
 4 $str=45;
 5 function seq_sch($array,$str){
 6   $max=count($array);
 7   for($i=0;$i<$max;$i++){
 8     if($str == $array[$i]) break;
 9   }
10   return $i<$max?$i:‘‘;
11 }
12 echo seq_sch($array,$str);;
13 //二分查找
14 function bin_sch($array,$k,$min,$max){
15   if ($min <= $max){
16     $mid = intval(($min+$max)/2);
17     if ($array[$mid] == $k){
18       return $mid;
19     }elseif ($k < $array[$mid]){
20       return bin_sch($array,$k,$min,$mid-1);
21     }else{
22       return bin_sch($array,$k,$mid+1,$max);
23   }
24 }
25   return ‘‘;
26 }
27 echo bin_sch($array,$str,0,count($array));
28 ?>

10. 写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数
 1 <?php
 2 $array=array(
 3   array(23,4,5,6,7,82),
 4   array(22,34,245,78),
 5   array(2,14,25,72)
 6 );
 7 function array_sort($array){
 8   if(!is_array($array)) return false;
 9   $newArray = array();
10   foreach($array as $k => $a){
11     foreach($a as $v){
12       $newArray[]=$v;
13     }
14   }
15   sort($newArray);
16   return $newArray;
17 }
18 var_dump(array_sort($array));
19 ?>
20  
				
时间: 2024-10-26 02:52:06

10道 php笔试题的相关文章

这10道javascript笔试题你都会么

1.考察this var length = 10; function fn() { console.log(this.length); } var obj = {   length: 5, method: function(fn) { fn(); arguments[0](); } }; obj.method(fn, 1); 输出:10 2 第一次输出10应该没有问题.我们知道取对象属于除了点操作符还可以用中括号,所以第二次执行时相当于arguments调用方法,this指向arguments,

阿里2道前端笔试题+堆糖2道前端笔试题

阿里前端笔试题 1.一个表格HTML代码如下 <table id="table1"> <tbody> <tr><td>1</td><td><button>Delete</button></td></tr> <tr><td>2</td><td><button>Delete</button></

几道C笔试题

Q:printf和scanf的返回值是什么? int main() { int i = 43; int n = printf("%d\n",i); printf("%d\n",n); return 0; } A:printf函数返回3,因为其输出了'4', '3', '\n' 三个字符. printf返回的是成功输出到STDOUT的字符数.如果发生错误,返回一个负数. scanf返回的是成功赋值的变量个数,如果发生错误,返回EOF Q:既然fgetc是接收输入的字符

Java程序员的10道XML面试题

如今,面对web开发人员的Java各种面试中,XML面试题在各种编程工作的面试中很常见.XML是一种成熟的技术,经常作为从一个平台到其他平台传输数据的标准.XML面试问题包括用于转换XML文件的XSLT技术,以及XPATH,XQuery等各种XML技术和XML基础知识. 笔者从论坛收集看到常见的XML面试问答题.这些问题大部分在Java面试中会问到,同时在C,C++,Scala或其他语言的编程面试中同样很有用处.作为编程人员所需要的技能之一,在任何技术工作面试之前准备一些XML问题是很有意义的.

算法--两道百度笔试题

算法--两道百度笔试题 今天看到一位园友写了一篇关于百度的面试题的博客,成了评论头条,再下看了一下,非常感兴趣,那位博主的算法能力跟我一样需要提高,估计他的功力还在我之下,所以再下不才,在这里把自己的源码贴出来. 百度面试题(一):假设一整型数组存在若干正数和负数,现在通过某种算法使得该数组的所有负数在正数的左边,且保证负数和正数间元素相对位置不变.时空复杂度要求分别为:o(n)和o(1).          其实开始的时候我也是一头雾水,在纸上画画之后发现,其实就是一道变形的插入排序.幸运的是

蓝鸥成都整理Java程序员的10道XML面试题

蓝鸥成都给大家整理了10道常见的XML面试问答题,这些问题大部分在Java面试中会问到.XML并不依赖于其他编程语言,同SQL一样是编程人员所需要的技能之一,因此在任何技术工作面试之前准备一些XML问题是很有意义的. XML面试问答 这些问题并不很难但涵盖了XML技术的一些重要领域,比如DTD,XML Schema,XSLT转换,XPATH检索,XML绑定,XML解析器以及XML的基本知识,比如命名空间,校验,属性,元素等. 问题1:XML是什么? 答:XML即可扩展标记语言(Extensibl

精选30道Java笔试题解答

个人觉得整理的超级好的Java笔试题,原文请见 http://blog.csdn.net/lanxuezaipiao/article/details/16753743 1. 下面哪些是Thread类的方法() A start()       B run()       C exit()       D getPriority() 答案:ABD 解析:看Java API docs吧:http://docs.oracle.com/javase/7/docs/api/,exit()是System类的方

100 道 Linux 笔试题,能拿 80 分就算大神!

本套笔试题共100题,每题1分,共100分.(参考答案在文章末尾) 1. cron 后台常驻程序 (daemon) 用于: A. 负责文件在网络中的共享 B. 管理打印子系统C. 跟踪管理系统信息和错误 D. 管理系统日常任务的调度 2. 在大多数Linux发行版本中,以下哪个属于块设备 (block devices) ? A. 串行口B. 硬盘 C. 虚拟终端D. 打印机 3. 下面哪个Linux命令可以一次显示一页内容? A. pause B. cat C. more D. grep 4. 

由几道JS笔试题引发的知识点探究

1.JS有哪些全局函数? 2.alert('5'+5) 3.cookie.sessionStorage和localStorage的区别 4.call()和apply()方法的区别 5.严格模式和非严格模式有什么区别?严格模式有什么优缺点? 6.JS正则表达式 7.创建一个ul元素添加到body元素中,ul元素包含5个li元素,每个li元素有一个Text类型的子节点 8.sort()方法的应用 9.使用原生JS实现一个可拖拽的DIV 10.用AJAX判断浏览器是IE还是FireFox 11.异步加