PHP基础面试题目小结(1)

最近项目组非常缺人,要招聘PHP,很快发现其实人还是挺缺的。来面试的不少,但是对笔试题目答的非常不理想。25个题目里,能做到10个的似乎已经非常厉害了,由于题目是我设计的,很多我想考核的预期目标,没有很好的考到,这里我做个我命的这套题目的一些意图。

1.写出五个数组函数。例如array 

  本题是一个非常基础的PHP函数默写,有人会觉得php函数不用识记,直接翻手册即可,表面上看这样的,但是如果基本的函数都写不出来,说明的问题是基础非常的不扎实,这种人就算做了很多项目,会发现积累非常低,很多高级点的功能完全没法进行组合。比如判断一个数组是否存在某个键值,或者随机打乱的。下面是项目里常常用的函数数组:

In_array($str,$arr1)  检测某个字符串或者值在$arr1里面

同步对应的有array_key_exists($key,$arr) 检测是不是存在某个键值

主要应用场景:比如UCenter检测用户传递过来的需要进行模型化的文件是否符合要求,不符合要求的全部跳转到指定的首页。

Array_merge($arr1,$arr2) $arr1$arr2进行合并

 Array_diff($arr1,$arr2)  相当于$arr1减去$arr2

主要应用场景:做配置的时候,常常需要将用户的默认配置覆盖掉默认位置,这样就可以直接用array_merge函数

Count($arr) 计算一个数组的长度 sizeof($arr) 是其对应的别名

Shuffle($arr) 把一个数组打乱数序   

应用场景:将广告文本和正常文本混合在一起,希望广告随机展现的时候,可以将其组装成一个数组后,进行使用。

Array_shift($arr) 将数组的第一个元素弹出,array_pop将数组的最后一个元素弹出来

都是直接直接改变原数组   一般主要用来做队列的时候,需要使用。

Array_reverse($arr)  翻转数组 一般用来翻转中文字符串的时候使用

Sort($arr) 把数组按照值进行排序 

Array_map(test,$arr) $arr 进行回调处理(关于回调的处理已经比较高级了)

2.写出5个超全局变量(超全局变量意味着并不需要global  $var 就可以直接使用的)

  $GLOBALS 全局作用域的全部变量

  $_SERVER 服务器端的变量

  $_REQUEST 请求的综合变量

  $_COOKIE  可以根据这个读取cookie

  $_SESSION  session

  $_POST  $_GET

3.获取客户端ip的方法

  如果没有代理 直接$_SERVER[REMOTE_ADDR]

  如果有代理了(这里暂时只有一层代理)

  $_SERVER['HTTP_X_FORWARDED_FOR']

  HTTP_X_FORWARDED_FOR

4.正则写出一个常用手机号码

  这个题目可以很难  这里考的很简单 

   ^[1][358][0-9]{9} $

5.写出一个二维数组排序的算法

  这个主要是考下核心算法能力(一般的算法都比二维排序简单)

 usort($arr,function($a,$b){

      If(count($a)=count($b)) {

         Return 0 ;   }

   Return  (count($a)>count($b))?-1:1;                    

}


你可能感兴趣的:(PHP基础面试题目小结(1))