苦逼的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