注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

88AVI-WEBZONE8-天空网

是金子总要发光的,但是当满地都是金子的时候,我自己也不知道自己是哪颗了

 
 
 

日志

 
 
关于我

两个人交谈,一个人可以洗耳恭听。但是,三个人则无法互谈这人世最严肃而应深究的事。 我们应该注意自己不用语言去伤害别的同志,但是,当别人用语言来伤害自己的时候,也应该受得起。 要对别人隐瞒我们知识的局限,最可靠的方法就是不要越过那界限。 不登高山,不知天之高也,不临深溪,不知地之厚也。 不飞则已,一飞冲天,不鸣则已,一鸣惊人!!!!!

网易考拉推荐

PHP面试题1  

2008-03-11 22:23:51|  分类: PHP面试题 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

一、基础题

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

<?

$str1 = null;

$str2 = false;

echo $str1==$str2 ? '相等' : '不相等';

$str3 = '';

$str4 = 0;

echo $str3==$str4 ? '相等' : '不相等';

$str5 = 0;

$str6 = '0';

echo $str5===$str6 ? '相等' : '不相等';

?>

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

<?

$a1 = null;

$a2 = false;

$a3 = 0;

$a4 = '';

$a5 = '0';

$a6 = 'null';

$a7 = array();

$a8 = array(array());

echo empty($a1) ? 'true' : 'false';

echo empty($a2) ? 'true' : 'false';

echo empty($a3) ? 'true' : 'false';

echo empty($a4) ? 'true' : 'false';

echo empty($a5) ? 'true' : 'false';

echo empty($a6) ? 'true' : 'false';

echo empty($a7) ? 'true' : 'false';

echo empty($a8) ? 'true' : 'false';

?>

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

<?

$test = 'aaaaaa';

$abc = & $test;

unset($test);

echo $abc;

?>

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

<?$count = 5;

function get_count(){

static $count = 0;

return $count++;

}

echo $count;

++$count;

echo get_count();

echo get_count();

?>

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

<?

$GLOBALS['var1'] = 5;

$var2 = 1;

function get_value(){

global $var2;

$var1 = 0;

return $var2++;

}

get_value();

echo $var1;

echo $var2;

?>

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

<?

function get_arr($arr){

unset($arr[0]);

}

$arr1 = array(1, 2);

$arr2 = array(1, 2);

get_arr(&$arr1);

get_arr($arr2);

echo count($arr1);

echo count($arr2);

?>

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

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

必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name), get_ext2($file_name)

二、算法题

1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组

2. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组

3. 写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数

【附答案】(以下答案不一定是最好的,只是一个简单的参考)

一、基础题

1. 相等 相等 不相等

2. true true true true true false true false

3. aaaaaa

4. 5 0 1

5. 5 2

6. 1 2

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

function get_ext1($file_name){

return strrchr($file_name, '.');

}

function get_ext2($file_name){

return substr($file_name, strrpos($file_name, '.'));

}

function get_ext3($file_name){

return array_pop(explode('.', $file_name));

}

function get_ext4($file_name){

$p = pathinfo($file_name);

return $p['extension'];

}

function get_ext5($file_name){

return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.')));

}

二、算法题

1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组

//冒泡排序(数组排序)

function bubble_sort($array)

{

          $count = count($array);

          if ($count <= 0) return false;

          for($i=0; $i<$count; $i++){

                  for($j=$count-1; $j>$i; $j--){

                          if ($array[$j] < $array[$j-1]){

                                  $tmp = $array[$j];

                                  $array[$j] = $array[$j-1];

                                  $array[$j-1] = $tmp;

                          }

                  }

          }

          return $array;

}

//快速排序(数组排序)

function quick_sort($array) {

          if (count($array) <= 1) return $array;

          $key = $array[0];

          $left_arr = array();

          $right_arr = array();

          for ($i=1; $i<count($array); $i++){

                  if ($array[$i] <= $key)

                          $left_arr[] = $array[$i];

                  else

                          $right_arr[] = $array[$i];

          }

          $left_arr = quick_sort($left_arr);

          $right_arr = quick_sort($right_arr);

          return array_merge($left_arr, array($key), $right_arr);

}

2. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组

//二分查找(数组里查找某个元素)

function bin_sch($array, $low, $high, $k){

      if ($low <= $high){

          $mid = intval(($low+$high)/2);

          if ($array[$mid] == $k){

              return $mid;

          }elseif ($k < $array[$mid]){

              return bin_sch($array, $low, $mid-1, $k);

          }else{

              return bin_sch($array, $mid+1, $high, $k);

          }

      }

      return -1;

}

//顺序查找(数组里查找某个元素)

function seq_sch($array, $n, $k){

      $array[$n] = $k;

      for($i=0; $i<$n; $i++){

          if($array[$i]==$k){

              break;

          }

      }

      if ($i<$n){

          return $i;

      }else{

          return -1;

      }

}

3. 写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数

//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序

function array_sort($arr, $keys, $order=0) {

if (!is_array($arr)) {

     return false;

}

$keysvalue = array();

foreach($arr as $key => $val) {

     $keysvalue[$key] = $val[$keys];

}

if($order == 0){

     asort($keysvalue);

}else {

     arsort($keysvalue);

}

reset($keysvalue);

foreach($keysvalue as $key => $vals) {

     $keysort[$key] = $key;

}

$new_array = array();

foreach($keysort as $key => $val) {

     $new_array[$key] = $arr[$val];

}

return $new_array;

}

  评论这张
 
阅读(514)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017