【发布时间】:2021-01-25 05:53:41
【问题描述】:
至少在我的 PHP 版本中,关于字符串的递增/递减运算符函数存在不一致。这就是我的意思:
php > echo phpversion();
7.4.11
php > $test = 'abc12';
php > // increment works as expected
php > echo(++$test);
abc13
php > echo(++$test);
abc14
php > echo(++$test);
abc15
php > // but decrement fails
php > echo(--$test);
abc15
php > echo(--$test);
abc15
php > echo(--$test);
abc15
这是预期的行为吗?我应该提交错误报告还是什么?您知道解决方法吗?
编辑:提交bug#80212
【问题讨论】:
-
为什么要增加或减少字符串?
-
增量/减量运算符仅适用于具有单个数值的类型。更让我惊讶的是,在
'abc12'上的增量工作。马库斯的问题是有道理的。为什么您希望能够以这种方式增加/减少非数值? -
根据manual:“递增/递减运算符只影响数字和字符串。数组、对象、布尔值和资源不受影响。减少 NULL 值也没有效果,但增加它们会导致1."我的实际用例是命名空间版本控制..
-
我知道您在最广泛的意义上采用“字符串”类型,但这并不合理。你将如何增加像“Wonderful”这样的字符串?你不能,因为它无论如何都不是数字。所以我们可能会同意并非所有字符串都可以工作?
-
哈哈,好吧,你去。是的,我同意手册不是那么清楚。
标签: php string increment decrement