jsyzchen
V2EX  ›  PHP

3 年 PHPer 的面试总结

  •  
  •   jsyzchen · Sep 11, 2017 · 9592 views
    This topic created in 3346 days ago, the information mentioned may be changed or developed.
    3 年 PHPer 的面试总结,都是大厂的面试题,值得收藏。
    原文链接: http://coffeephp.com/articles/4?utm_source=v2ex
    64 replies  •  2017-11-07 09:38:56 +08:00
    xman99
    xman99
    Sep 11, 2017
    1
    感谢分享
    wintercoder
    wintercoder
    Sep 11, 2017 via Android
    2
    除了多了一些很细致的语言问题,好像跟校招没什么区别?
    goodspb
    goodspb
    Sep 11, 2017 via iPhone
    3
    Mark
    mentalidade
    mentalidade
    Sep 11, 2017 via Android
    4
    好文章
    Xrong
    Xrong
    Sep 11, 2017
    5
    给楼主点个赞,很棒。。。
    throns
    throns
    Sep 11, 2017 via Android
    6
    感谢楼主 很有用
    vardump
    vardump
    Sep 11, 2017
    7
    实话实说,三年的经验这点东西还是太浅了。推广你网站是真的,新机 boy~~
    ss098
    ss098
    Sep 11, 2017
    8
    里面的 MySIAM -> MyISAM。
    enenaaa
    enenaaa
    Sep 11, 2017
    9
    已经不敢面试了。现在写代码都是边查边写。 好多 api, 语法用过即忘。
    solgh
    solgh
    Sep 11, 2017
    10
    感谢分享
    g8287694
    g8287694
    Sep 11, 2017
    11
    @enenaaa +1 没文档很难做事了
    lelouchyang
    lelouchyang
    Sep 11, 2017❤️1
    12
    一看到 get 比 post 安全 就不想看下去了。。。
    azh7138m
    azh7138m
    Sep 11, 2017 via Android
    13
    @vardump 前端表示也能懂个一半,感觉只写了基础的部分啊
    colincat
    colincat
    Sep 11, 2017
    14
    感觉真心和 Java 有差距,你这文章里面那个秒杀系统真心扛不住并发
    throns
    throns
    Sep 11, 2017 via Android
    15
    @lelouchyang 他写了更不安全
    johnlui
    johnlui
    Sep 11, 2017
    16
    @throns 两者安全性完全一致
    nullen
    nullen
    Sep 11, 2017❤️1
    17
    @jsyzchen
    21.请设计一个实现方式,可以给某个 ip 找到对应的省和市,要求效率竟可能的高。
    这个用二分查找。
    FORyou2017
    FORyou2017
    Sep 11, 2017
    18
    有用!
    kltt22
    kltt22
    Sep 11, 2017
    19
    @lelouchyang 说反了?文中不是说 get 不适合传递私密数据?
    ylsc633
    ylsc633
    Sep 11, 2017
    20
    好东西..
    那个设计模式,我收下了..
    to2false
    to2false
    Sep 11, 2017
    21
    mark
    Felldeadbird
    Felldeadbird
    Sep 11, 2017❤️1
    22
    我怎么感觉这玩意是网上抄来,然后拼凑起来的文章?
    lianxiaoyi
    lianxiaoyi
    Sep 11, 2017
    23
    @colincat 我也这么觉得,看了前面一些算法。觉得一般,但是看到秒杀这段代码,,,我这呵呵一笑了。。。。
    a308057848
    a308057848
    Sep 11, 2017
    24
    没啥算法, 都是中规中矩的解题
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    25
    @nullen 谢谢
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    26
    @ss098 感谢提醒,已修改
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    27
    @lelouchyang 没有啊,我写的是“ GET 比 POST 更不安全,因为参数直接暴露在 URL 上,所以不能用来传递敏感信息。”
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    28
    @ylsc633 谢谢
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    29
    @mentalidade 谢谢!
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    30
    @Xrong 谢谢!
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    31
    @solgh 谢谢!
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    32
    @wintercoder 工作经验还不行,见笑了
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    33
    @vardump 但确实是面试官问的,我只是整理了一下。确实帮自己社区推广了一下,嘿嘿。
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    34
    @FORyou2017 谢谢!
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    35
    @colincat 嗯嗯,只是实现了功能,想到更好的方案后会完善
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    36
    @a308057848 确实算法都是一些常见的
    AlwaysBehave
    AlwaysBehave
    Sep 11, 2017
    37
    COOKIE 和 SESSION 的区别和关系
    这个分类最后一条 Session 写错了
    还有我理解的话,session 的一种实现方式是 cookie,不理解所谓 session 安全性更高是怎么得出来的
    run2
    run2
    Sep 11, 2017
    38
    虽然是用的人家的开源代码,但 UI 也不用长那么像吧...什么都不改 ...
    Lucups
    Lucups
    Sep 11, 2017
    39
    秒杀这个一并发可以肯定是超售的,修正一下吧。
    huage
    huage
    Sep 11, 2017
    40
    很明显,作者是在做推广啊,居然还是了小尾巴 utm_source=v2ex
    crazyworld825
    crazyworld825
    Sep 11, 2017
    41
    @AlwaysBehave #37 按照我对这两者的了解,Session 比 Cookie 安全是因为 Session 存在服务器中,只能由服务端程序进行相关操作,Cookie 是存放在客户端(浏览器),是明文显示的,当然也可以进行相关的 hash 和加密,但是客户端是可见,使用 js 是可以对 Cookie 进行修改、读取、删除等一系列的操作,在后端程序中,可以将 cookie 设计为 HttpOnly,这样前端就无法使用 js 对 cookie 进行读写等操作,session 和 cookie 对应一般靠后端生成的唯一的一个序列( sessionid )来对应,这样就没办法窃取 cookie 进行 session 劫持,而且一般 cookie 被窃取,也没办法修改 session 的数据,都是由后台程序根据操作自动写入的吧
    killerv
    killerv
    Sep 11, 2017
    42
    session 的安全性更高这个不太赞同,感觉没有什么安全性对比之说,如果这么说感觉就是对 cookie 的误解。cookie 就是传输数据给服务端的一种方式,只是在 header 里面而已。而 session 可以通过 cookie 匹配到用户 session。
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    43
    @sobigfish 只是 UI 没改,因为我是做 PHP 的,改 UI 比较麻烦,但 PHP 代码基本都重写了,我用的是 Phalcon 框架,phphub 用的是 Laravel,过几天会开源,敬请关注。
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    44
    @Lucups 好的,我再想想其他更好的方案
    AlwaysBehave
    AlwaysBehave
    Sep 11, 2017
    45
    @crazyworld825 唔,没想到在验证安全上有什么好处?
    所谓说劫持,只要能拿到 cookie 就可以劫持登录状态吧,这个后台加密也是无能为力啊
    对客户端可见难道不是正常?不理解有什么问题,防 XSS 用 HTTPONLY 这个点 okey
    我还是没有看出来所谓安全在哪里,session 是为了识别用户,cookie 只是实现方式之一,类似的还有 JWT,我不认为这之间有什么可以对比的地方……
    更何况没法修改 session 的数据的话这个…… cookie 加密了也可以储存啊,但是不是不赞同这样做吗

    @killerv +1 感觉是哪里误解了
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    46
    @huage 方便统计而已,嘿嘿。,
    jugelizi
    jugelizi
    Sep 11, 2017
    47
    @AlwaysBehave 曾见过有个开源系统登录的记住我的功能是把用户名和密码编码存在 cookie 里的.....
    gouchaoer
    gouchaoer
    Sep 11, 2017
    48
    这个题目很多有问题吧,那个过滤 js 的只是过滤 script 标签本身就是错的;那个秒杀系统更扯淡,要 2 个 tcp 来回而且对单 uid 重复提交没有过滤,你就算用 redis 集群所有的请求都打到一个 redis 的 list 上能撑住么……
    Xrong
    Xrong
    Sep 11, 2017
    49
    @huage 老哥敏感了点,23333333
    usapla
    usapla
    Sep 11, 2017
    50
    好东西,学习了
    crazyworld825
    crazyworld825
    Sep 11, 2017
    51
    @AlwaysBehave #45 cookie 的产生是为了保持 web 浏览状态,可以存放服务器创建的信息,然后在请求的时候发送给服务器,正如#47 说的,有直接把用户名或密码等敏感信息放在 cookie 里面的,那都是客户端可见的;

    #42 说 cookie 就是传输数据给服务端的一种方式,我们开发都会被提醒,不要相信客户端传过来的数据,要在服务端进行验证,那如果本来需要保存在 cookie 的数据可以直接保存在 session 中,是不是相对安全?

    session 同时也是可以保存用户信息的,不过在服务器中;因为现在的浏览器都支持 cookie,所以一般都将 sessionid 写在 cookie 中进行身份的对应,形成了 cookie 和 session 一般成对使用的情况,在禁用 cookie 的情况下,是可以在链接后面加上相对应的 sessionid 也是可以工作的,如果分开来看,就保存数据而言,session 比 cookie 安全,这说法我觉得没问题。
    wukongkong
    wukongkong
    Sep 11, 2017 via Android
    52
    @jugelizi 应该怎么写呢
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    53
    @gouchaoer 多谢反馈,我会及时修正
    fanhan
    fanhan
    Sep 11, 2017
    54
    7.如何快速寻找一个数组里最小的 1000 个数
    感觉这个算法有问题,时间复杂度上比正常排序后取一千还慢
    rr41ns
    rr41ns
    Sep 11, 2017
    55
    楼主好人
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    56
    @rr41ns 谢谢!
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    57
    @fanhan 嗯嗯,我的那种方法时间复杂度是 O(nk),不过可以改进,可以维护容量为 k 的最大堆,那样时间复杂度就变成 O(k)了
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    58
    @fanhan 维护容量为 k 的最大堆,时间复杂度应该为 O(logk)
    a1044634486
    a1044634486
    Sep 11, 2017
    59
    这是 php 还是运维。。我晕了
    jsyzchen
    jsyzchen
    OP
    Sep 11, 2017
    60
    @a1044634486 哈哈,面试什么都问
    msg7086
    msg7086
    Sep 12, 2017
    61
    function is_same_sign($a, $b)
    {
    if ($a * $b > 0) {
    return true;
    } else {
    return false;
    }
    }

    换我会写成 $a > 0 && $b > 0 || $a < 0 && $b < 0。

    就算用乘法,我也会写成 return $a * $b > 0; 。
    jsyzchen
    jsyzchen
    OP
    Sep 12, 2017
    62
    @msg7086 确实这样更直观一些
    wengang285
    wengang285
    Nov 6, 2017
    63
    @Lucups 超发不会,只是性能不高
    Lucups
    Lucups
    Nov 7, 2017
    64
    @wengang285 写得太复杂了,decr 就可以了,判断减 1 操作后的值是否小于 0。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4487 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 107ms · UTC 03:04 · PVG 11:04 · LAX 19:04 · JFK 22:04
    ♥ Do have faith in what you're doing.