程序员找工作必备 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;
面试题系列:
更多学习内容请访问:
腾讯T3-T4标准精品PHP架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)