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

PHP 数组引用, $conn['host'] 和 $conn[host] 效率会差多少?

  •  
  •   xiaoyanbot · 2017-11-27 23:12:37 +08:00 · 2561 次点击
    这是一个创建于 2335 天前的主题,其中的信息可能已经有所发展或是发生改变。

    host 会去寻找常量,效率会差多少

    11 条回复    2017-11-30 00:36:49 +08:00
    1010011010
        1
    1010011010  
       2017-11-27 23:54:04 +08:00
    是字符串就加引号,是常量就不加,和效率无关
    Gonejack
        2
    Gonejack  
       2017-11-28 00:09:09 +08:00 via iPhone
    都不是一个情况怎么比较效率。除非引用出现在双引号括起来的字符串里,那种也当作没区别。
    xifangczy
        3
    xifangczy  
       2017-11-28 06:42:29 +08:00   ❤️ 1
    https://tool.lu/coderunner/?id=3Yi

    无引号: 0.00085091590881348
    单引号: 0.0010130405426025
    双引号: 8.2969665527344E-5

    这个结果不意外,其实双引号才是最差的。
    我记得用 Zend Studio 写的话 他会自己给你添加引号
    xifangczy
        4
    xifangczy  
       2017-11-28 06:48:26 +08:00   ❤️ 1
    php 7.1.12

    无引号: 0.0027420520782471
    单引号: 0.00017094612121582
    双引号: 0.00017309188842773

    我感觉我好闲
    Junjunya
        5
    Junjunya  
       2017-11-28 08:43:18 +08:00
    @xifangczy
    双引号不是效率最差的,最差的肯定是不加引号。
    不加引号的话,会首先去查找是不是常量,如果常量没有会有警告,然后再去把他当成字符串来处理。
    单引号和双引号的话。因为字符串里面没有变量、没有进行拼接的操作。所以效率差不多。

    你第一个测试是你没看清楚, 双引号的是 8.2969665527344E-5 应该是 0.0000829
    …… 其实我觉得 0.000829 比较合理
    batnss
        6
    batnss  
       2017-11-28 09:35:36 +08:00
    sandbox> exited with status 0
    5.4.16
    无引号: 0.0080370903015137
    单引号: 0.0012021064758301
    双引号: 0.00089788436889648
    xiaozi
        7
    xiaozi  
       2017-11-28 12:16:48 +08:00
    😂 sandbox 的 cpu load 飙了,我说咋回事呢
    xifangczy
        8
    xifangczy  
       2017-11-28 19:16:52 +08:00
    @Junjunya 嗯,是我没看清楚。


    @xiaozi 哈哈,一开始我想放自己网站上来着,想想还是算了... 这锅我不背 -.-
    xiaoyanbot
        9
    xiaoyanbot  
    OP
       2017-11-29 22:03:51 +08:00
    @xifangczy 感谢!!!!
    xiaoyanbot
        10
    xiaoyanbot  
    OP
       2017-11-29 22:04:57 +08:00
    @xifangczy 双引号的效率比单引号低, 是怎么回事?
    xifangczy
        11
    xifangczy  
       2017-11-30 00:36:49 +08:00
    @xiaoyanbot 看 5 楼解释咯
    双引号也会进入解析器 内有变量都会解析拼接效率当然没有单引号高
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   950 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:48 · PVG 03:48 · LAX 12:48 · JFK 15:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.