PHP面试(一)

原创 2016年06月01日 17:07:30

笔试部分
这里写图片描述
1、比较简单 B

2、这个需要注意下,count统计的是数组中的元素个数,其他情况返回1,故选A。

3、Session是可以使用的,可以通过url传递sessionID,但是这是不安全的做法,而且还需要在php.ini中开启

// 允许SessionID通过URL明文传输
//在这种情况下虽然已经允许了SessionID通过URL明文传输,担是同时又开启//了仅使用cookies存放会话SessionID,所以在URL中明文传输的//PHPSESSIONID参数值是无效的,SESSION不能用。
session.use_trans_sid = 1; 
session.use_only_cookies = 1; // 开启仅使用cookies存放会话id

故选A。

4、函数没有返回值。故选B

这里写图片描述
这里写图片描述

5、类似上一题,因为a函数没有返回,作用域为局部的,故选B。

6、单引号与双引号的区别。

单引号性能高 双引号能解析变量 单引号不支持转义符号\

故选AC

7、这里写图片描述
选择 AB
const不能再条件语句中定义常量,但是define是可以的,如下:

    <?php
        if(1){
            const a = 'java';
        }
        echo a;  //必错
    ?>

const采用一个普通的常量名称,define可以采用表达式作为名称
const本身就是一个语言结构。而define是一个函数。所以使用const速度要快的多。

8、require和include的区别

require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误
include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。

9、++i是在i上直接加1,表达式的值是i本身 i++也是在i上加1,表达式的值是加1前的副本,因为要存副本,所以效率略低。故选A。

10、301,302,303,307都表示跳转,故选ABC

301 永久性重定向
302 临时性重定向
303 该状态码表示由于请求对应的资源存在另一个URI,应使用GET方法定向获取请求的资源。303302的不同之处在于,302不会改变请求的方法,如果请求方法是POST的话,重定向的请求也应该是POST。而对于303,使用POST请求的话,重定向的请求应该是GET请求。
307 临时重定向。该状态码与302303有着类似的含义,不同之处在于,307状态码并不会指定客户端要用什么样的方法请求重定向地址。(302指定使用原有请求方法,303指定使用GET方法)

11、AB print_r不能看到字符串、整形等类型。

12、BD 原因见下

$a = (bool)'0';
$b = (bool)-1;
$c = (bool)array();
$d = (bool)2;
var_dump($a,$b,$c,$d);
//结果如下
F:\wamp\www\test1.php:1342:boolean false
F:\wamp\www\test1.php:1342:boolean true
F:\wamp\www\test1.php:1342:boolean false
F:\wamp\www\test1.php:1342:boolean true

13、CD 不确定

14、B 不解释

15、A 不解释
这里写图片描述
16、C

17、A

18、AE

19、BC

20、D 不确定

算法
1、

$str = 'MakeById';
$arr = str_split($str);
foreach($arr as $key =>&$val) {
    if (ord($val) < 97) {
        $val = ($key? '_':'').strtolower($val);
    }
}
echo implode($arr);

//反过去
$str = 'make_by_id';
$arr = explode('_', $str);
$arr1 = array_map('ucfirst', $arr);
echo implode($arr1);

2、

$arr = ['a','b','c','a','d','z','y','b','b'];
$arr1 = array_count_values($arr);
arsort($arr1);
echo key($arr1);

3、

$str = 'dianfubao@che001.com';
echo strstr($str,'@',true);

这里写图片描述

4、从首位两头开始交换

$arr =[1,2,3,4,5,6,7];
$big = count($arr) - 1;
$small = 0;
while($small <= $big) {
    if (!isEven($arr[$small]))
        $small++;
    if (isEven($arr[$big]))
        $big--;
    if (isEven($arr[$small]) && !isEven($arr[$big])) {
        $tmp = $arr[$small];
        $arr[$small] = $arr[$big];
        $arr[$big] = $tmp;
    }
}
function isEven($n) {
    if ($n % 2 == 0) 
        return true;
    else 
        return false;
}
var_dump($arr);
版权声明:本文为博主原创文章,未经博主允许不得转载。

PHP面试题遇到的几个坑。...面壁ing

1.指针悬挂问题 $array = [1, 2, 3]; echo implode(',', $array), "\n"; foreach ($array as &$value) {}    // b...
  • Jackdowson123
  • Jackdowson123
  • 2015年07月05日 09:53
  • 1097

2016某知名互联网公司PHP面试题及答案

1 字符串”\r”,”\n”,”\t”,”\x20”分别代表什么答案: “\r”代表的含义是: 在Linux、unix 中表示返回到当行的最开始位置,在Mac OS 中表示换行且返回到下一行的最开始...
  • whq19890827
  • whq19890827
  • 2016年09月27日 20:27
  • 37392

2016某知名互联网公司PHP面试题及答案(续)

1 写出mysql中,插入数据,读出数据,更新数据的语句 INSERT INTO 表名 VALUES (””,””); SELECT * FROM 表名;。 UPDATE 表名 SET 字...
  • whq19890827
  • whq19890827
  • 2016年09月27日 20:51
  • 3331

【总结】PHP常见面试题汇总(一)。。。

/** * 第1题:用PHP打印出前一天的时间格式,如:"2015-01-21 14:42:09" */ echo date("Y-m-d H:i:s",strtotime("-1 day"))...
  • yanhui_wei
  • yanhui_wei
  • 2015年01月22日 18:18
  • 13488

php面试必知必会常见问题

1 说出常用的10个数组方法 我觉得数组比较最能体现php基础语法的一个数据结构了,下面给大家列一下常用的10个关于操作数组的函数 in_array(判断数组中是否有某个元素)...
  • Mr_Janan
  • Mr_Janan
  • 2016年07月27日 09:07
  • 7201

php专业面试总结

PHP专业面试题汇总   目录 一、PHP基础: 2 二、数据库部分 5 三、面向对象部分 9 四、ThinkPHP部分 12 五、smarty 模板引擎 16 六、二次开发系统(DEDE、ecsho...
  • lwc863481702
  • lwc863481702
  • 2016年09月03日 12:32
  • 4840

PHP面试100题汇总

Php面试100题汇总 1,Http 和Https的区别第一:http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议第二:http和https使用的是完全不同的连接方式,...
  • LIU_YANZHAO
  • LIU_YANZHAO
  • 2017年03月11日 15:06
  • 1311

PHP版今日头条算法面试题(持续更新)

1,现在有一个字符串,你要对这个字符串进行 n 次操作,每次操作给出两个数字:(p, l) 表示当前字符串中从下标为 p 的字符开始的长度为 l 的一个子串。你要将这个子串左右翻转后插在这个子串原来位...
  • liangxun0712
  • liangxun0712
  • 2017年12月07日 16:44
  • 450

PHP程序员面试中经常被提问的问题

1. Include 与 require的区别,require和require_once的效率哪个高?   Php在遇到include时就解释一次,如果页面中出现10次include,php就解释1...
  • dongsg11200
  • dongsg11200
  • 2013年08月17日 00:05
  • 4166

PHP面试题 之 redis

Redis的缓存策略和主键失效机制 作为缓存系统都要定期清理无效数据,就需要一个主键失效和淘汰策略. 在Redis当中,有生存期的key被称为volatile。在创建缓存时,要为给定的key设置生存期...
  • LiuMiao1128
  • LiuMiao1128
  • 2017年04月19日 15:25
  • 1387
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP面试(一)
举报原因:
原因补充:

(最多只允许输入30个字)