zoukankan      html  css  js  c++  java
  • 一份不错的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';
        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. 写出如下程序的输出结果

    <?php    
        $test = 'aaaaaa';
        $abc = & $test;
        unset($test);
        echo $abc;
    ?>

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

    <?php    
        $count = 5;
        function get_count(){
            static $count = 0;
            return $count++;
        }
        echo $count;
        ++$count;
        echo get_count();
        echo get_count();
    ?>

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

    <?php    
        $GLOBALS['var1'] = 5;
        $var2 = 1;
        function get_value(){
            global $var2;
            $var1 = 0;
            return $var2++;
        }
        get_value();
        echo $var1;
        echo $var2;
    ?>

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

    <?php    
        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 参考: http://my.oschina.net/banbo/blog/303306 里面的结论二

    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){
      return pathinfo($file_name, PATHINFO_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=$i; $j<$count-1; $j++){
        if ($array[$i] > $array[$j]){
        $tmp = $array[$i];
        $array[$i] = $array[$j];
        $array[$j] = $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);
    }
    1. 使用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;
    }

    文章转载自:https://www.3kts.cn/index.php/archives/66/

  • 相关阅读:
    反向代理实例
    nginx常用命令和配置
    nginx的安装
    Can Live View boot up images acquired from 64bit OS evidence?
    What is the behavior of lnk files?
    EnCase v7 search hits in compound files?
    How to search compound files
    iOS 8.3 JB ready
    Sunglasses
    现代福尔摩斯
  • 原文地址:https://www.cnblogs.com/xishaonian/p/6402994.html
Copyright © 2011-2022 走看看