飞飞 2020-04-01 21:58:50 2090次浏览 2条回复 0 0 0

“PHP学习网” 公众号会每天分享一些面试题,正在找工作的小伙伴们可以来看看哦。

1.写出下面的程序输出的结果

$str="cd";
$$str="abcde";
$$str.="ok";
echo $cd;

答案:该段代码输出是:ok

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()有什么区别?它们分别在什么情况下使用?

sort() 根据阵列中元素的值,以英文字母顺序排序,索引键会由 0 到 n-1 重新编号。主要是当阵列索引键的值无关疼痒时用来把阵列排序。

assort() PHP 没有 assort() 函式,所以可能是 asort() 的笔误。

asort() 与 sort() 一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特别适合替联想阵列排序。

ksort() 根据阵列中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的联想阵列。

最后各位可以扫下方二维码关注我公众号,目前我正在更新基础面试题,之后会更新中高级、redis、liunx面试题

weixin.jpg

  • 回复于 2020-04-10 09:11 举报

    第一个题的输出是 abcdeok

    觉得很赞
  • 回复于 2020-11-24 11:07 举报

    第一个:

    $str="cd";
    $$str="abcde";
    $$str.="ok";
    echo $cd;
    答案是 abcdeok

    解释:
    $str = "cd";
    $$str="abcde";相当于 $cd="abcde";
    $$str.="ok";相当于 $cd.="ok";
    所以源代码可以转为:
    $str="cd";
    $cd="abcde";
    $cd.="ok";
    echo $cd;
    答案:abcdeok

您需要登录后才可以回复。登录 | 立即注册