2018 PHP滴滴-顺风车PHP研发实习生面试总结

本文是关于2018年PHP实习生在滴滴顺风车部门的面试总结,涉及PHP基础知识、MySQL、HTTP协议、Linux命令、Redis、PHP-FPM等内容。面试过程中,面试者发现自身在面向对象、设计模式、数据库索引等方面存在不足,并记录了面试中遇到的问题和答案,如isset与empty的区别、COOKIE和SESSION的差异、联合索引的使用等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人感受:

            面试官人挺nice的,中间不会、不理解问题都耐心帮讲解,非常感谢。前面是面试题基础知识点的东西,后面两个人聊了聊其他方面的。总体下来,由于前面的面试题好多自己都没有答对,也没有答到点上去,觉得一点自信心也没有,在好多基础方面都了解的不够,不深。

不足方面:

            PHP面向对象【public protected private 和static abstract区别,使用方法】、几种设计模式 【单例类,工厂类,迭代器类等】,MySQL数据库【联合索引、数据字段类型int,char vachar等】,PHP Nginx和Apache配置,PHPredis服务器,HTTP协议状态码区别 ,Linux常见命令等


面试问题:

1、isset 和empty的区别:

    

<?php
        $a=0;// 0 null '' false  ‘0’带引号的0 array()  都输出哈哈
        if(empty($a))echo '哈哈';
        //isset 只有null、没有赋值,为假 不输出11
        if(isset($a))echo 11;
        ?>
        echo true;为1
        echo false; 为空
        echo null; 为空

2、关于 && || 的区别:

    

     && 与 $x && $y 如果 $x 和 $y 都为 true,则返回 true。 如果$x 为真 判断$y 如果$x为假结束。


  || 或 $x || $y 如果 $x 和 $y 至少有一个为 true,则返回 true。无论$x真或者假,$x 和$y 都会执行。

3、COOKIE和SESSION区别:


这里有个点,,明明自己看到了(从未执行过)--

setcookie 只影响下次访问页面时候的$_COOKIE的值,本次$_COOKIE的值不会因为setcookie而改变。
 setcookie('name','tom');
var_dump($_COOKIE['name']);
$_SESSION['name'] = 'jony';
var_dump($_SESSION['name']);

第一次的时候,会报错没有name这个变量。当刷新后,再次执行时,返回tom jony。

4、类变量name 和award的区别是什么?


    考点:初始化顺序和存储位置区别:

    1:静态方法和变量,不需要实例化即可使用,存放在类里

    2:非静态方法和变量,存放在对象里,需要实例化才可使用。

    3:静态方法和变量在整个执行的过程中最先初始化后再执行后面的代码

5、查询时出现乱码,怎么解决?

   

设置字符编码的方法:
       1. 文件属性(另存为)
    2.文件meta(设置浏览器解析的时候) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />             HTML5 使用<meta charset="UTF-8">减少代码量
    3. 连接数据库时编码设定  mysql_query(‘SET NAMES utf-8’);

    4. PHP文件中使用header函数确定编码 header("Content-type:text/html;charset=utf-8")


6、订单表中有联合索引 orderId、userId,请问 select * from order where userId = 1 and orderId = 123; 会使用到联合索引吗?

index idx_orderId_userId(orderId,userId)   能否用到idx_orderId_userId这个索引

这里我对联合索引不明白。所以就没有答上来。

整理后:

            联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,ba,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。


两个或更多个列上的索引被称作复合索引。

利用索引中的附加列,您可以缩小搜索的范围,但使用一个具有两列的索引 不同于使用两个单独的索引。

下面这个很形象,简单易懂。

复合索引的结构与电话簿类

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值