php面试题(实时更新)

苦逼的coder,不过这是基础,尽量涵盖,这里只写关于php的,基础肯定是各种字符串操作,数组操作,然后面向对象的理解。其实这里面好多好多东西都是平时用不到的,但这就是基础,面试官问到的东西只是你知道的很少很少一部分,但这就是你们交涉的全部所以还你是得让自己尽可能知道的多。写这些东西没有应试教育的意思,虽然有的东西平时不会用,但对你绝对都是有帮助的

1 PHP是用什么语言编写的

php是用c写的

扩展:php3 php4 php5的主要区别是什么,php6的新特征有哪些?

这个问题真恶心,等我以后心情好了在回答吧

2 目前PHP的最高版本是

2013.9.12现在应该是php5.5

3  PHP的三种注释方式

天啊,我竟然知道两种,太可怕了  # 竟然也是 好吧

4 请列出PHP的8种数据类型

字符串 数组 对象 数值类型 整型 xml 浮点 布尔值 特殊的有Null和resource(说实话我只用过前五种)

5  PHP中有几种形式装载代码,并列举,以包含同目录下的Config.php文件为例?

require include require_once include_once

require一般用在文件的头部包含文件,执行php时包含这个文件使它成为php的一部分

include一般用在流程控制中,用到时再包含

区别是require遇到错误不会往下执行,而include会继续执行

require_once和include_once的作用是避免重复包含,也就是说如果不小心包含了同一个文件,用这两个函数会只包含一次

6 PHP中===表示什么意思,以及与==的区别,什么情况下==是true,===是false

这个问题也是比较常见的,不过巨简单。==是比较表达式两边的值,而===会比较数据类型,比如$a  = 1;$b = '1'; ==的话就为true,但===就为false,因为数据类型不同

7 header的作用是什么,以及它的限制

sorry,这个需要先看http协议,等有功夫在回答这个问题,目前只知道这是做跳转用的

8 strstr和stristr的区别

这种字符串操作的方法但凡加了i的一般都是不区分大小写的意思。这里在普及一下strstr的做用吧,strstr默认返回从指定字符到该字符串结束的字符

9 php如何获得浏览器信息

看吧,php能做的事还是不少的,哎,我这么说会不会暴露了我的知识面比较窄的缺陷呢,哈哈

$_SERVER['HTTP_USER_AGENT'];平时没用过这些东西

10 什么是URLRewriteing

说说我自己的理解吧,就是伪静态嘛!通过隐藏网页的访问地址以达到更好收录的的效果,可能有不对的地方,欢迎拍砖

11 如何遍历一个文件夹下所有的内容(考中几率非常高)

以前我都嫌麻烦,不去记这些东西,而且平时用的话我都是从网上搜索,但笔试的时候肯定不能让你从网上搜虽然这东西经常被考到,但我可以确定的是你写不出来对你影响不会很大,当然写出来了更好,之前我欧诺个的都是什么opendir 之类的这些傻×函数,刚才我知道了scandir这个函数,这是循环遍历文件夹的函数,非常实用奥

<?php
$dir = "."; //当前目录
list_file($dir);

function list_file($dir){
	$list = scandir($dir); // 得到该文件下的所有文件和文件夹
	foreach($list as $file){//遍历
		$file_location=$dir."/".$file;//生成路径
		if(is_dir($file_location) && $file!="." &&$file!=".."){ //判断是不是文件夹
			echo "------------------------sign in $file_location------------------";
			list_file($file_location); //继续遍历
		}
		echo "<br/>";
	}
}
?>

12 二分法和冒泡排序(为什么把这俩在一起说呢,因为他俩都是经常被考到的,而且对于我们的思维逻辑很重要)

二分法 array(1,2,3,4,5,6,7)取出其中一个值的键名

先说一个网上很常见的方法

function Dichotomy($php,$k,$low=0,$max=0)

  {

    if(count($php)!= 0 and $max == 0)

    {

        $max = count($php);

    }

    if($low <= $max)

    {

    $mid = intval(($low+$max)/2);

    if($php[$mid] == $k)

    {

        return $mid;

    }

    else if($k < $php[$mid])

    {

        return Dichotomy($php,$k,$low,$mid-1);

    }

    else

    {

        return Dichotomy($php,$k,$mid+1,$max);

    }

    }

    return -1;

  }

  $php = array('1','2','3','4','5','6');

  echo Dichotomy($php,5);

?>
这个方法确实可以,我也试过。但是,我觉得这种方法不好,确切的说是不准确。因为这种方法是以顺序的不间断的数组为基础的,比如上面所说的

$max = count($php);$max很明显不是最大值,而是数组的总长度,所以这里不准确。看看我写的方法吧


  function dis($arr,$var) {

     $max = count($arr);

     $mid = intval($max/2);
     if($arr[$mid-1] == $var){

        return $mid;

     }
     if($arr[$mid-1] >= $var){
         $arrs = array_slice($arr,0,$mid);
         return dis($arrs,$var);
     }else{
         $arrs = array_slice($arr,$mid,$mid);
         return dis($arrs,$var);
     }
  }

$arr = array(1,2,3,4,5,6,7,9);
  echo $a = dis($arr,2);

这里我没有引入最大值最小的概念,只是从数组的中间开始取值判断

冒泡排序

$arr = array(1,5,2,23,64,27);
 foreach($arr as $key=>$val){
     for($i=0;$i<count($arr);$i++){
         $var = '';
         if($arr[$i] < $arr[$i+1]){
              $var = $arr[$i];
              $arr[$i] = $arr[$i+1];
              $arr[$i+1] = $var;
         }

     }
 }
 print_r($arr);

太神奇了,刚才我自己手写了一下这段程序。我竟然在没有任何思考的情况下给背下来了,真的是考的多了

这里最重要的是程序里的for循环,普通的if判断只是判断哪个值最大,但这只是比对一遍,外层在加上一个for循环的目的是将当前值跟所有值做比较

13 php常用数组和字符串函数(这对于我们来说是最最最基本和常用的,一定要深刻认识并熟练运用)

数组:这里说的都是常用的大约有20个

1 in_array 判断数组中是否存在某值或某数组

2 is_array 判断是否是数组

3 array_merge 合并数组

4 array_search 搜索某值是否存在于数组中

5 array_slice 分个数组(从数组中取出一段)

6 array_values 建立数字索引

7 array_diff 取差集

8 array_keys返回所有键名

9 array_unique 移除重复的值

10 array_splice 将数组中的值用其他值替换

11 sort asort rsort arsort ksort

12 implode

13 print_r

14 foreach

15 count

16 array_shift   将数组开头 的单元去掉

另外像array_map使用频率不是很高,但这些函数你得知道是做什么的

字符串:

1 substr(截取字符串,这是最最常用的)

2 strlen(获取字符串的长度)

3 strpos(查找字符在字符串中首次出现的位置)

4 str_replace(字符串替换)

5 explode(按照规律将字符串拆分成数组)

6 strtoupper(将所有字母变成大写)

7 strtolower

8 ucfirst(将字符串的首字母变成大写)

9 ucwords(将字符串中每个单词的首字母变成大写)

10 strrev(反转字符串,其实不是很常用)

11  substr_replace(替换字符串的子串,注意与str_replace的区别)

12 strip_tags(去除html和php标记,可以选择保留想要的标签)

13 trim(去除空格)

14

你可能感兴趣的:(php面试题(实时更新))