“PHP學習網” 公眾號會每天分享一些面試題,正在找工作的小夥伴們可以來看看哦。
1.寫出下面的程式輸出的結果
$str="cd";
$$str="abcde";
$$str.="ok";
echo $cd;
答案:該段程式碼輸出是:abcdeok
2.寫出如下程式的輸出結果
$count=5;
function get_count(){
static $count=0;
return $count++;
}
echo $count;
++$count;
echo get_count();
echo get_count();
答案:結果為 5 0 1
3.請列舉一些你所知道的開發模式 (如工廠模式,越多越好)
MVC模式、單態模式、敏捷開發模式、瀑布流模式、螺旋模式、值物件模式、註冊模式、偽物件模式、策略模式、迭代器模式、規範模式
4.寫一個函式,儘可能的高效,從一個標準url 裡取出檔案的副檔名。 例如:http:// cn.yahoo.com / abc /de/fg.php?id=1 需要取出 .php
答案1:
function getExt($url){
$arr = parse_url($url);
$file = basename($arr['path']);
$ext = explode(".",$file);
return $ext[1];
}
答案2:
function getExt($url) {
$url = basename($url);
$pos1 = strpos($url,".");
$pos2 = strpos($url,"?");
if(strstr($url,"?")){
return substr($url,$pos1 + 1,$pos2 - $pos1 - 1);
} else {
return substr($url,$pos1);
}
}
5.求兩個日期的差數,例如 2019-2-5 ~ 2020-3-6 的日期差數
方法一:先用strtotime轉換成unix時間戳,然後相減,除以一天的秒數86400.
方法二:先用mktime轉換成unix時間戳,然後相減,除以一天的秒數86400.
具體程式碼如下:
方法一:
class Dtime
{
function get_days($date1, $date2)
{
$time1 = strtotime($date1);
$time2 = strtotime($date2);
return ($time2-$time1)/86400;
}
}
$Dtime = new Dtime;
echo $Dtime->get_days('2019-2-5', '2020-3-6');
方法二:
$temp = explode('-', '2007-2-5');
$time1 = mktime(0, 0, 0, $temp[1], $temp[2], $temp[0]);
$temp = explode('-', '2007-3-6');
$time2 = mktime(0, 0, 0, $temp[1], $temp[2], $temp[0]);
echo ($time2-$time1)/86400;
6.Sort() assort() ksort()有什麼區別?它們分別在什麼情況下使用?
答案:公號檢視
本作品採用《CC 協議》,轉載必須註明作者和本文連結