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

2018-03-08 10:28:37 +08:00
 gouchaoer
昨天发现有个代码在 php7.2 下没法跑,一查发现 count 在 7.2 的行为不再兼容,而且我看了这个改变非常震惊:
http://php.net/manual/en/function.count.php

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

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

PS: 总是背负历史,php 就很难迈开脚往前走
gouchaoer
2018-04-18 11:04:01 +08:00
我找到了克服这个问题的办法,那就是吧 E_DEPRECATE 的提醒关掉就 ok 了,世界清静了,php 兼容了,至于 php8 会不会移除,关我屁事,反正继续瞎搞我不会升级的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/436048

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX