成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

php面試題 匯集1

taowen / 1306人閱讀

摘要:刪除數(shù)組的最后一個元素輸出刪除的最后一個元素輸出擴(kuò)展名切割字符串函數(shù)查找字符串在另一字符串中最后一次出現(xiàn)的位置。

一. 寫出如下程序的輸出結(jié)果

參考試題出處
1.基礎(chǔ)



正確答案:相等 相等 不相等
注:== 表示值相等  ===表示值與類型都必須一樣

原因是在PHP中變量是以C語言的結(jié)構(gòu)體來存儲的,空字符串和NULL,false都是以值為0存儲的,其中這個結(jié)構(gòu)體有個zend_uchartype;這樣的成員變量,他是用來保存變量的類型的,而空字符串的類型是string,NULL的類型是NULL,false是boolean。

所以空字符串(""),false,NULL和0是值相等而類型不一樣!

2.輸出值

$a1 = null;
$a2 = false;
$a3 = 0;
$a4 = "";
$a5 = "0";
$a6 = "null";
$a7 = array();
$a8 = array(array());
echo "
"; echo empty($a1) ? "true" : "false"; echo "
"; echo empty($a2) ? "true" : "false"; echo "
"; echo empty($a3) ? "true" : "false"; echo "
"; echo empty($a4) ? "true" : "false"; echo "
"; echo empty($a5) ? "true" : "false"; echo "
"; echo empty($a6) ? "true" : "false"; echo "
"; echo empty($a7) ? "true" : "false"; echo "
"; echo empty($a8) ? "true" : "false"; 正確答案:true true true true true false true false 解釋:$a1--$a5都是0 $a7是空數(shù)組

3.輸出值

    $test = "aaaaaa";
    $abc = & $test;
    unset($test);
    echo $abc;
    
    正確答案:aaaaaa
    解釋:& $test; 只是建立了一個通道指向值存儲的地方  unset只能撤銷$test的通道,但是
    對$abc沒影響

4.輸出值

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

正確答案:501
解釋:不用解釋,局部變量,靜態(tài)變量 后加

5.輸出值

 $GLOBALS["var1"] = 5;
    $var2 = 1;
    function get_value(){
        global $var2;
        $var1 = 0;
        return $var2++;
    }
    get_value();//這里沒有輸出值 但是var2卻在這里加了值
    echo $var1;
    echo $var2;
    
    正確答案:52
    解釋:如上
    

6.使用五種以上方式獲取一個文件的擴(kuò)展名

1.substr   strrchr
$filename = "phpddt.jpg";
echo substr(strrchr($filename,"."),1);
//strrchr() 函數(shù)(在php中)查找字符在指定字符串中從左面開始的最后一次出現(xiàn)的位置,如果成功,返回該字符以及其后面的字符,如果失敗,則返回 NULL。

2.explode array_pop//刪除數(shù)組的最后一個元素
$filename = "phpddt.jpg";
$arr = explode(".",$filename);
echo array_pop($arr); //輸出刪除的最后一個元素

3.pathinfo 
$filename = "phpddt.jpg";
$info = pathinfo($filename);
echo $info["extension"];//輸出擴(kuò)展名

4.pathinfo
$filename = "phpddt.jpg";
echo pathinfo($filename,PATHINFO_EXTENSION);

5.substr //切割字符串  strrpos

$filename = "phpddt.jpg";
echo substr($filename,strrpos($filename,".")+1);
// strrpos() 函數(shù)查找字符串在另一字符串中最后一次出現(xiàn)的位置。
二、算法題
1.冒泡
function bubble_sort($array){
    $count = count($array);
    if ($count <= 0) return false;
    for($i=0; $i<$count; $i++){
        for($j=$i+1; $j<$count; $j++){
            if ($array[$i] > $array[$j]){
                $tmp = $array[$i];
                $array[$i] = $array[$j];
                $array[$j] = $tmp;
            }
        }
    }
    return $array;
}
2.快速  //思路:數(shù)組小于或等于一不用排序,取數(shù)組第一個和所有的值比較小于第一個的在歸在左邊數(shù)組$left_array 大于第一個的歸于右邊數(shù)組,兩個數(shù)組遞歸主方法之后兩邊數(shù)據(jù)依次從小到大排列好,之后array_merge合并數(shù)組返回
function quick_sort($array) {
    if (count($array) <= 1) return $array;
    $key = $array[0];
    $left_arr = array();
    $right_arr = array();
    for ($i=1; $i
三.二分法查找數(shù)組元素
1.非遞歸  數(shù)組已排好序,知道數(shù)組的鍵值   查到就返回,沒查到返回-1
function binary(&$arr,$low,$top,$target){
    while($low <= $top){
//由于php取商是有小數(shù)的,所以向下取整,不過也可不加,數(shù)組也會取整
        $mid = floor(($low+$top)/2);
        echo $mid."
"; if($arr[$mid]==$target){ return $arr[$mid]; }elseif($arr[$mid]<$target){ $low = $mid+1; }else{ $top = $mid-1; } } return -1; } $arr = [1,4,7,12,34,45]; $rest = binary($arr,0,6,12); print_r($rest);exit;
2.遞歸
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;
}

$arr = [1,4,7,12,34,45];
$rest = binary($arr,0,6,12);
print_r($rest);exit;
四.寫一個二維數(shù)組排序算法函數(shù),能夠具有通用性,可以調(diào)用php內(nèi)置函數(shù)

//二維數(shù)組排序, $arr是數(shù)據(jù),$keys是排序的健值,$order是排序規(guī)則,1是升序,0是降序

$data = array();
$data[] = array("volume" => 67, "edition" => 2);
$data[] = array("volume" => 86, "edition" => 1);
$data[] = array("volume" => 85, "edition" => 6);
$data[] = array("volume" => 98, "edition" => 2);
$data[] = array("volume" => 86, "edition" => 6);
$data[] = array("volume" => 67, "edition" => 7);

function array_sort($arr, $keys, $order=1) {
    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);
    }
    $new_array = array();
    foreach($keysvalue as $key=>$value) {
        $new_array[$key] = $arr[$key];
    }

    return $new_array;
}

$rest = array_sort($data,"volume",0);
echo "
";
print_r($rest);exit;

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/22274.html

相關(guān)文章

  • php面試 匯集2

    摘要:用打印出前一天的時間格式是的區(qū)別和不是一個函數(shù),是一個語言結(jié)構(gòu)只有一個參數(shù)可以輸出多個參數(shù),返回和只能打印出,不能打印出結(jié)構(gòu)能打印出結(jié)構(gòu)比如加粗文字 1、用PHP打印出前一天的時間格式是2006-5-10 22:21:21 echo date(Y-m-d H:i:s,time()-60*60*24); $a = date(Y-m-d H:i:s, strtotime(-1 day));...

    BlackFlagBin 評論0 收藏0
  • 迷惑性的js面試匯集

    摘要:一般用于刪除對象的屬性,刪除后其結(jié)果為但其不能刪除變量。條件判斷為假的情況有,,,,,未定義對象。函數(shù)聲明寫在運(yùn)算符中,其為,但放在運(yùn)算符中的函數(shù)聲明在執(zhí)行階段是找不到的。將賦值給相當(dāng)于故其指向 1、delete的用法 (function(x){ delete x; console.log(x); })(1) 答案為1。delete一般用...

    JinB 評論0 收藏0
  • Android-Java面試

    摘要:好不容易在月號這天中午點(diǎn)左右接到了來自阿里的面試電話。這里會不斷收集和更新基礎(chǔ)相關(guān)的面試題,目前已收集題。面試重難點(diǎn)的和的打包過程多線程機(jī)制機(jī)制系統(tǒng)啟動過程,啟動過程等等掃清面試障礙最新面試經(jīng)驗(yàn)分享,此為第一篇,開篇。 2016 年末,騰訊,百度,華為,搜狗和滴滴面試題匯總 2016 年未,騰訊,百度,華為,搜狗和滴滴面試題匯總 各大公司 Java 后端開發(fā)面試題總結(jié) 各大公司 Jav...

    TalkingData 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<