V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dexter
V2EX  ›  程序员

谁有面试phper的经验?帮一下忙

  •  
  •   dexter · 2014-01-02 10:33:29 +08:00 · 7014 次点击
    这是一个创建于 3981 天前的主题,其中的信息可能已经有所发展或是发生改变。
    能给一些phper 面试的题么?
    最好配上答案。。。
    谢谢了
    39 条回复    1970-01-01 08:00:00 +08:00
    Keyes
        1
    Keyes  
       2014-01-02 10:35:42 +08:00
    这。。算是伸手党么,等好心人帮吧
    senghoo
        2
    senghoo  
       2014-01-02 10:35:47 +08:00
    这个东西你得提供被面试者是什么级别的啊。
    初学,还是一定经验,还是老手。
    mahone3297
        3
    mahone3297  
       2014-01-02 10:36:50 +08:00
    不如google下?一搜一大堆。。。
    PrideChung
        4
    PrideChung  
       2014-01-02 10:41:03 +08:00
    HTTP协议GET和POST的区别,相信我,能刷掉一大堆人……
    huaiyinhou
        5
    huaiyinhou  
       2014-01-02 10:51:27 +08:00 via iPhone
    @PrideChung 一点不假
    Mr2
        6
    Mr2  
       2014-01-02 11:04:03 +08:00
    Magic 解释一下
    yinjian
        7
    yinjian  
       2014-01-02 11:04:12 +08:00
    curd
    wdkwdkwdk
        8
    wdkwdkwdk  
       2014-01-02 11:21:40 +08:00
    @PrideChung 尼玛不会吧。。。。
    我知道的就是地址栏的区别,还有获取数据与提交数据之别,不要告诉我我一直都没弄清楚~
    young
        9
    young  
       2014-01-02 11:27:49 +08:00
    话说面试php的问到php的东西很少,都是它的周边技术问题
    richiefans
        10
    richiefans  
       2014-01-02 11:29:35 +08:00
    不同类型的缓存机制 和应用场景
    dexter
        11
    dexter  
    OP
       2014-01-02 11:32:41 +08:00
    多谢大家,我吓了一跳,转眼这么多回复

    主要是希望得到大家自已的独道经验
    google当然会很多,只是未必有实际用处

    希望得到一个能写磨姑街这样的网站的phper
    :)
    Ever
        12
    Ever  
       2014-01-02 11:33:49 +08:00
    别面了, 直接上机。

    断网, 留份php手册。
    不允许用框架(不是反对使用框架, 只是很多框架自带csrf防护, 模板变量自动html escape, ORM又防大部分sql注入, 用了不容易看出是否具备一定基本意识)
    一个半小时内出个基本blog。

    看完成度。
    saharabear
        13
    saharabear  
       2014-01-02 11:36:10 +08:00
    听说鸟哥面试,大多会问一下以array有关的函数,你能说出几个.如果只能说出in_array,那自然要淘汰.
    mengzhuo
        14
    mengzhuo  
       2014-01-02 11:59:21 +08:00
    @PrideChung 这怎么可能?小朋友都知道吧
    kennedy32
        15
    kennedy32  
       2014-01-02 12:27:02 +08:00
    @PrideChung 卧槽,这也行
    raincious
        16
    raincious  
       2014-01-02 12:31:26 +08:00
    @Ever 咳咳。弱弱的问下,像我这样自己有框架的能自带框架么?

    否则一小时,有点心思想把功能做细致的估计来不及。
    stc
        17
    stc  
       2014-01-02 13:12:54 +08:00
    准备些http,数据库,html方面的题目,都是通用的,多聊聊就能探出底来了。
    yangxin0
        18
    yangxin0  
       2014-01-02 13:53:36 +08:00 via Android
    年后准备去手游后台,面试的时候直接说不会PHP,然后没有问我PHP相关的。
    shiny
        19
    shiny  
       2014-01-02 14:20:48 +08:00
    @Ever 要是遇上这样的面试机会我肯定赢了——平时很少用框架;只翻 PHP 手册。
    subpo
        20
    subpo  
       2014-01-02 14:21:38 +08:00
    @wdkwdkwdk 对是对,但是浅
    subpo
        21
    subpo  
       2014-01-02 14:23:31 +08:00
    @Ever 一个半小时最多出个demo吧,你说的全做完还不准用框架,这种人世间少有吧
    ooh
        22
    ooh  
       2014-01-02 14:37:55 +08:00
    mvc,路由,数据验证,sql,做网站就这些吧
    Sunyanzi
        23
    Sunyanzi  
       2014-01-02 14:49:00 +08:00   ❤️ 12
    招初级程序员用到的知识点方面 ... 能把 serialize 正确拼出来的人应该是有点基础的 ...

    在这个基础上可以问跟缓存相关的问题 ... 这个函数都没听说过的话问了也是白问 ...

    其他就是很烂俗的辨析 ... 这样的东西网上一抓一大把 ...

    include / require / include_once / require_once 区别 ... echo / print / printf / print_r 区别一类的 ...

    着重的点不在于他是否能答对 ... 而是他是否有一个愿意研究程序的心态 ...

    我招聘这么久见到的人基本上分两类 ... 一种是真喜欢程序 ... 一种是听说这行挣钱来凑热闹 ...

    上面的问题虽然简单 ... 但可以很容易的分离这两类人 ...

    当然想要深层次的分离还有更高级的问题 ...

    比如问问对现有的主流框架的看法 ... 问问自己实现框架的话会偏重哪方面 ...

    问问几个对常见设计模式的理解比如 Singleton Observer Factory 这类的 ...

    当然如果你还是觉得这些问题简单 ... 非要给他个下马威 ... 也可以问一些完全没用的偏门问题 ...

    比如在没有手册的情况下试解释下面函数的用途 ... _ / levenshtein / hebrevc ...

    比如试分析 echo '1' . print( 2 ) + 3; 这行代码返回的结果以及为什么 ...

    这种莫名其妙的问题如果要想我分分钟能琢磨出上百个不重样的 ...

    但事实上我个人很不喜欢这种把对方引诱到自己熟悉的领域然后以己之长攻彼之短的做法 ...

    假如他连这种坑都能轻松过去的话 ... 说明或者是有准备 ... 或者是基础真的牢固到了一定程度 ...

    基础知识的部分大概就这样 ... 挑一些答案明明白白写在手册里的问题问就好 ... 下面说实战 ...

    实战方面也分两种 ... 一种是纸笔写程序 ... 一种是上机 ...

    纸笔的程序这么久以来我最喜欢的还是两个问题 ...

    一个是找一百以内的质数 ... 另一个是指定的数组重构 ...

    同样 ... 能不能纸笔写出不出错的代码不重要 ... 重要的是思路 ...

    找质数的题 ... 不知道什么叫质数或者素数的直接 PASS ...

    写出从 1 穷举到 100 算法的可以差不多给到 3 ...

    能直接想到以 2 步进然后用之前找到所有质数做除法的人绝对 6 起跳 ...

    数组的题一般的描述是这样 ...

    「在一个有序且所有成员均为整数的数组中插入一个新整数并维护原来的排序方式不变」 ...

    题目有两个坑 ... 其一是我没说数组是正序还是倒序 ... 其二是我没说不能用系统函数 ...

    能指出我这两个坑然后用 sort / rsort 函数两行完成这个题目的人 6 起跳 ...

    自己完成一个数据插入算法的可以给到 3 ...

    自己闷着吭哧一下午最后说要回去想一下再来告诉我结果的 PASS ...

    在这两个问题之外的次选还有些杨辉三角完全背包鸡兔同笼猴子偷桃集市买鸡等等这类传统的问题 ...

    我平常不问这些的原因是因为这类问题太古板了 ...

    会的就是会不会的就不会 ... 看不出实现能力的差距 ... 而我偏重实现能力胜过算法能力 ...

    如果公司看重算法能力的话 ... 纸笔写这个等级的算法也不是什么难事 ...

    至于上机的程序基本都是各种 CRUD ... 给台断网的机器给个手册给个需求再给点时间 ...

    我基本都是让对方当场写个 simple blog ... 除了 CRUD 之外还看如何实现权限系统 ...

    顺便还能看看对 MySQL 的理解 ... 比如数据表设计 SQL 注入防范等等 ...

    还能引出一些其他问题 ... 比如各类索引的区别 ... 假如你这个系统每天抗 1G pv 如何优化等等 ...

    同样如果公司看重算法能力的话 ... 上机算法可以写八皇后 ... 能写出来的估计要 10 起跳了 ...

    差不多就是这样 ... 上面说的都是纯粹的 php 层面的问题 ... 其他知识点随需而问就好 ...

    需要他切模板就问问前端相关的问题 ... 需要他管服务器就问问操作系统相关的问题 ...

    这个没有定数 ... 就不在这个帖子里讨论了 ...

    我招聘别人的经历大概就是这样 ... 最后说一下我被招聘的经历好了 ...

    我自己是没招过高级 php ... 但这两个月有面试几家公司 ...

    没有一家问我任何 php 的问题 ... 基本都是偏重之前的项目经验和管理经验 ...

    也就是说如果你真的需要有人可以 hold 住全场的话 ... 上面的问题其实都不重要了 ...

    重要的是他之前做过什么 ... 有过怎样的成就 ... 问问这类问题就好 ...

    总的来说面试终归只是一个过程 ... 我们的目的是招聘一个能帮忙的人 ...

    面试中的技术问题不过是一道道门槛 ... 沟通和交流才是最主要的 ...

    技术其实非常好培养 ... 但人品非常难 ... 如果发现有好苗子但招无妨 ... 慢慢带就是了 ...

    更多的我这一时半会儿的也想不到什么 ... 就这样吧 ...
    mahone3297
        24
    mahone3297  
       2014-01-02 14:54:12 +08:00
    @PrideChung 这真能刷掉一大堆?
    slixurd
        25
    slixurd  
       2014-01-02 14:54:57 +08:00
    八皇后可是大学算法考试必考题= =
    mahone3297
        26
    mahone3297  
       2014-01-02 14:55:48 +08:00
    @dexter 我一般会让他写一个排序算法。。。很简单的那种,就排序一个整形数组
    另外,你可以问mysql,nosql,redis,memcached等
    再根据他做过的项目谈重点。
    heganj
        27
    heganj  
       2014-01-02 14:56:03 +08:00
    我不用php,不过听说php不太严谨,你可以参考下,以此来作为考察点:

    (以下截取自Q群聊天记录)

    举个简单的例子,选出一个数组的某个子数组这个函数,里面如果只有一个item,那么返回item自身,而不是包含item的数组

    再举个例子。。。变量名和成员变量名大小写不敏感,函数名和方法名大小写敏感

    引用不存在的变量产生warning 引用不存在的方法产生fatal error

    "0" == 0 //===>true

    但是"0123"会解析成十进制的123,而0123会解析成八进制

    再然后,<任意非纯数字字符串> == 0 //===>true

    就是"aaa" == 0 //===> true
    "0123" == 0 //===> false
    "0123" == 123 //====>true

    再然后 ((null==0) && (null < -1)) //===> true

    我想起来了。。。。我当时写php的时候还遇到过一个大坑是这样的:类似shuffle那样的函数,返回的不是打乱的数组,而是一组打乱的下标
    min
        28
    min  
       2014-01-02 14:56:51 +08:00   ❤️ 4
    出去假装phper求职,把别的公司的php面试题目骗来即可
    Sunyanzi
        29
    Sunyanzi  
       2014-01-02 15:13:37 +08:00   ❤️ 1
    @slixurd 虽说是必考题 ... 但能过考试和能记在脑子里还是不太一样的 ...

    至少我在这边招聘的时候 ... 很多写着计算机专业出身的人在我问起八皇后的时候都一脸茫然 ...

    其实我个人在招聘的时候对学历和专业都没什么要求 ... 或者有根骨或者有灵性就好 ...

    说来我突然想到一个事情 ... 我个人还蛮反感很多社会上的 php 速成班出来的人 ...

    简历上除了名字和生日不同其他都一模一样 ...

    满眼看过去各种精通 ... 各种熟练掌握 ... 问起来各种不会 ... 也没有想要自己去学的意识 ...

    我承认可能是我管中窥豹以偏概全了 ...

    反正这么久我遇到的这类人基本都是混日子的 ... 靠谱的少之又少 ...

    虽然可能有点偏激也算我的一个经验 ... 写在这里供参考 ... 也希望 LZ 的情况能比我好吧 ...
    jarlyyn
        30
    jarlyyn  
       2014-01-02 15:24:00 +08:00
    这个问题是最不能问别人的。
    关键不是怎么去面试一个phper,而是你需要一个怎么样的员工。
    比如只是做view模板的,就arry操作,循环,各种文字处理。
    如果是做开发的,那么各式继承,构架。
    如果是做数据库操作一块的,那么就是数据库的各种处理,防注入啥的吧?
    程序员在不同的公司的工作都不同,怎么能指望别人给面试题目?
    mcwanderer
        31
    mcwanderer  
       2014-01-02 17:33:09 +08:00
    以上大神,回答的好精彩。
    sun019
        32
    sun019  
       2014-01-02 18:19:52 +08:00
    增删改查
    操作数据库 基本的sql
    对字符串 数组操作
    MVC 框架 了解程度
    项目经验
    baocaixiong
        33
    baocaixiong  
       2014-01-02 20:05:07 +08:00 via Android
    @Sunyanzi 还是这个兄弟的serialize切实际,我之前打死记不住。。哈哈
    jarcher
        34
    jarcher  
       2014-01-02 21:06:32 +08:00
    没有面试题,就看你做的项目问...
    Ever
        35
    Ever  
       2014-01-02 21:12:48 +08:00
    @raincious 有自己的框架有加分, 不过我觉得"考试"还得闭卷吧, 时间是一个半小时,不是一个小时。

    @subpo 对, 我说了看完成度, 不要求搞多完善的。

    最基本的文章和评论的CRUD及分页总得搞定,参数的过滤(包括sql防注入)、不存在xss和csrf问题是最基本的, 还有按年月日归类的count by group, 其他的tags、分类、feed、traceback这些是没要求的, 能完成当然给加分了。

    文章的基本展示就是htmlspecialchars和nl2br, 审的时候能说出wysiwyg+htmlpurifier、 bbcode/ubb、markdown都是有加分的。

    管理员登录验证搞个http basic authentication就算ok了, 要不记得相关header, 允许看的php手册里其实就有现成的。

    这种偏重基本功的测试, 有本手册就够了, 能上网或者用框架就不准了, 比如: 甲上网copy了分页和db类, 乙composer了一份doctrine, 丙用yii或者cakephp根据表直接生成了scaffold, 丁直接clone了github上一个玩票的blog.
    subpo
        36
    subpo  
       2014-01-02 22:45:04 +08:00
    @Sunyanzi 一年前还是两年前我在v2ex上投简历的时候你问我去不去厦门玩玩,现在看了你的回复,我只想说...按照我当时的水平,幸亏没去,去了就是自取其辱么...
    dexter
        37
    dexter  
    OP
       2014-01-03 11:07:18 +08:00
    再次感谢 楼上全体!
    Sunyanzi
        38
    Sunyanzi  
       2014-01-03 17:36:41 +08:00
    @subpo 依然随时欢迎过来玩呀 ... 或者我杀奔苏州找你去玩也可以 ... 求包养 ... 不饿死就行 ...

    嘛 ... 压压惊压压惊 ... 怎么说呢 ... 完全不用害怕啦 ... 自取其辱什么的也完全不会发生的说 ...

    通常的面试 ... 我和被面试的人都是初次相见 ... 我们的人生轨迹很可能只会相交这一个来小时 ...

    面试之后如果不成 ... 很可能一个星期过去他不记得我我也不记得他 ... 仿佛我们从未相遇过 ...

    所以我要用这短短的时间从他身上挖掘到尽可能多的东西 ... 过程就会比较简单粗暴啦 ...

    而在我身处的圈子里发出的邀请完全是另外一回事 ... 比如之前的论坛邀请 ...

    我们虽然没见过面但我们彼此认识 ... 看你的发言就可以大概对你有所了解 ...

    所以就算没有基础 ... 只要愿意过来 ... 愿意跟着我学 ... 我就可以从零带起的说 ...

    说来我还蛮爱干这个事情的 ... 之前在公司也招了一些学 Java 完全没接触过 php 的大学生硬带 ...

    熟人的话 ... 起薪大概会比招过来没基础的陌生人翻一倍这样 ... 算是特别优待吧 ..?
    Sunyanzi
        39
    Sunyanzi  
       2014-01-03 18:08:24 +08:00
    趁着无聊顺便提一下 @heganj 27 楼的回复里面的几个不准确的地方吧 ...

    和帖子的主题完全没关系 ... 单纯是看着别扭而已 ...

    「再举个例子。。。变量名和成员变量名大小写不敏感,函数名和方法名大小写敏感」 ...

    这个正好说反了 ...

    所有与变量或常量相关的名称皆为大小写敏感的 ... 而函数名方法名类名大小写不敏感 ...

    「引用不存在的变量产生warning 引用不存在的方法产生fatal error」 ...

    引用不存在的变量或常量会产生 Notice 级别的错误 ... 而不是 Warning 级别的错误 ...

    引用不存在的函数方法或类是产生 Fatal error 级别的错误没错 ...

    「类似shuffle那样的函数,返回的不是打乱的数组,而是一组打乱的下标」 ...

    事实上 php 的 shuffle 函数的返回是一个成功与否的布尔值 ... 执行完成原数组会直接被打乱 ...

    返回一组被打乱下标的函数叫 array_rand ... 用途是在数组里挑选一个或多个随机成员 ...

    所以我觉得大概是你用错了函数 ..?

    至于变量类型转化的疑问 ... php 作为一个弱变量类型的语言 ... 得到这样的结果也不奇怪啦 ...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3070 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:34 · PVG 08:34 · LAX 16:34 · JFK 19:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.