V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
顶级 AI 接口,史上最低价!
低至0.3 元/刀,已支持国内外众多热门模型,GPT、Claude 、Gemini 、DeepSeek 、豆包……
Promoted by ergou915
gouchaoer
V2EX  ›  PHP

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

  •  
  •   gouchaoer · 2018-03-08 10:28:37 +08:00 · 2420 次点击
    这是一个创建于 2700 天前的主题,其中的信息可能已经有所发展或是发生改变。
    昨天发现有个代码在 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   ·   实用小工具   ·   5587 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:36 · PVG 10:36 · LAX 19:36 · JFK 22:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.