摘要:刪除數組的最后一個元素輸出刪除的最后一個元素輸出擴展名切割字符串函數查找字符串在另一字符串中最后一次出現的位置。
一. 寫出如下程序的輸出結果
參考試題出處
1.基礎
正確答案:相等 相等 不相等 注:== 表示值相等 ===表示值與類型都必須一樣 原因是在PHP中變量是以C語言的結構體來存儲的,空字符串和NULL,false都是以值為0存儲的,其中這個結構體有個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是空數組
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 解釋:不用解釋,局部變量,靜態變量 后加
5.輸出值
$GLOBALS["var1"] = 5; $var2 = 1; function get_value(){ global $var2; $var1 = 0; return $var2++; } get_value();//這里沒有輸出值 但是var2卻在這里加了值 echo $var1; echo $var2; 正確答案:52 解釋:如上
6.使用五種以上方式獲取一個文件的擴展名
1.substr strrchr $filename = "phpddt.jpg"; echo substr(strrchr($filename,"."),1); //strrchr() 函數(在php中)查找字符在指定字符串中從左面開始的最后一次出現的位置,如果成功,返回該字符以及其后面的字符,如果失敗,則返回 NULL。 2.explode array_pop//刪除數組的最后一個元素 $filename = "phpddt.jpg"; $arr = explode(".",$filename); echo array_pop($arr); //輸出刪除的最后一個元素 3.pathinfo $filename = "phpddt.jpg"; $info = pathinfo($filename); echo $info["extension"];//輸出擴展名 4.pathinfo $filename = "phpddt.jpg"; echo pathinfo($filename,PATHINFO_EXTENSION); 5.substr //切割字符串 strrpos $filename = "phpddt.jpg"; echo substr($filename,strrpos($filename,".")+1); // strrpos() 函數查找字符串在另一字符串中最后一次出現的位置。二、算法題
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.快速 //思路:數組小于或等于一不用排序,取數組第一個和所有的值比較小于第一個的在歸在左邊數組$left_array 大于第一個的歸于右邊數組,兩個數組遞歸主方法之后兩邊數據依次從小到大排列好,之后array_merge合并數組返回 function quick_sort($array) { if (count($array) <= 1) return $array; $key = $array[0]; $left_arr = array(); $right_arr = array(); for ($i=1; $i三.二分法查找數組元素 1.非遞歸 數組已排好序,知道數組的鍵值 查到就返回,沒查到返回-1 function binary(&$arr,$low,$top,$target){ while($low <= $top){ //由于php取商是有小數的,所以向下取整,不過也可不加,數組也會取整 $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;四.寫一個二維數組排序算法函數,能夠具有通用性,可以調用php內置函數//二維數組排序, $arr是數據,$keys是排序的健值,$order是排序規則,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;
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/22274.html
摘要:用打印出前一天的時間格式是的區別和不是一個函數,是一個語言結構只有一個參數可以輸出多個參數,返回和只能打印出,不能打印出結構能打印出結構比如加粗文字 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));...
摘要:一般用于刪除對象的屬性,刪除后其結果為但其不能刪除變量。條件判斷為假的情況有,,,,,未定義對象。函數聲明寫在運算符中,其為,但放在運算符中的函數聲明在執行階段是找不到的。將賦值給相當于故其指向 1、delete的用法 (function(x){ delete x; console.log(x); })(1) 答案為1。delete一般用...
摘要:好不容易在月號這天中午點左右接到了來自阿里的面試電話。這里會不斷收集和更新基礎相關的面試題,目前已收集題。面試重難點的和的打包過程多線程機制機制系統啟動過程,啟動過程等等掃清面試障礙最新面試經驗分享,此為第一篇,開篇。 2016 年末,騰訊,百度,華為,搜狗和滴滴面試題匯總 2016 年未,騰訊,百度,華為,搜狗和滴滴面試題匯總 各大公司 Java 后端開發面試題總結 各大公司 Jav...
閱讀 2038·2021-11-19 11:37
閱讀 727·2021-11-11 16:54
閱讀 1176·2021-11-02 14:44
閱讀 3072·2021-09-02 15:40
閱讀 2378·2019-08-30 15:44
閱讀 968·2019-08-29 11:17
閱讀 1069·2019-08-26 14:06
閱讀 1562·2019-08-26 13:47