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

PHP 关于不兼容与强类型的平衡

  •  
  •   gouchaoer · 2018-03-08 10:28:37 +08:00 · 2129 次点击
    这是一个创建于 2212 天前的主题,其中的信息可能已经有所发展或是发生改变。
    昨天发现有个代码在 php7.2 下没法跑,一查发现 count 在 7.2 的行为不再兼容,而且我看了这个改变非常震惊:
    http://php.net/manual/en/function.count.php

    也就是说 count 的数据必须是 countable 的,这太理想化了,假如一个对象为 countable 或者为 null 呢?以前 null 可以传入现在不行了;以前 count(string)可以,现在不行了;

    去网上搜这个 features 全是问题,我觉得你要改 count 必须以兼容的方式来改吧,比如 count 的第二个参数加一个严格模式啥的,否则失去了脚本语言的本质。。。。
    4 条回复    2018-04-18 11:04:01 +08:00
    gouchaoer
        1
    gouchaoer  
    OP
       2018-03-12 10:27:03 +08:00
    https://www.reddit.com/r/PHP/comments/82w04e/it_sucksphp72_count_break_bc/
    感觉 php72 太激进了,话说咋没人讨论?
    Junjunya
        2
    Junjunya  
       2018-03-12 15:38:06 +08:00
    因为大部分人还没用上 PHP7.2 吧
    slince
        3
    slince  
       2018-03-13 23:54:04 +08:00
    我觉得挺好,本身 count 一个非数组变量就是不合理的;这么去写也是不对的;
    不过这对我来说一点影响都没有,我根本不会去 count 一个非数组

    PS: 总是背负历史,php 就很难迈开脚往前走
    gouchaoer
        4
    gouchaoer  
    OP
       2018-04-18 11:04:01 +08:00
    我找到了克服这个问题的办法,那就是吧 E_DEPRECATE 的提醒关掉就 ok 了,世界清静了,php 兼容了,至于 php8 会不会移除,关我屁事,反正继续瞎搞我不会升级的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5291 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 09:32 · PVG 17:32 · LAX 02:32 · JFK 05:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.