ucwords 分隔符参数在 PHP 5.6 中是否受支持?



根据官方文档,PHPucwords函数可用于版本 4、5、7,并支持版本5.4.325.5.16中引入的delimiter参数。

因此,我希望delimiter参数在版本 5.6.*中可用。

实验表明,它在5.6.30-1+deb.sury.org~trusty+1版本中不可用。这是预期的行为,我正在使用的PHP包中的错误,还是仅仅是我的错误?

谢谢你的时间。

代码

<?php
$word = "foo|bar";
echo(ucwords($word, "|"); // Foo|Bar

在所有PHP版本中都按预期工作,这是输出:https://3v4l.org/Uf3Ya

您可以使用 docker 运行所需的所有版本的快速测试。

在 5.6 中,您将获得预期的行为:

$ docker run -i php:5.6-cli php -r "echo ucwords('hello|world', '|') .PHP_EOL;">
你好|世界

也许php --version检查您实际调用的版本?

作为参考,这是对没有该选项的版本的反应:

docker run -i php:5.3-cli php -r "echo ucwords('hello|world', '|') .PHP_EOL;">

警告:ucwords() 期望只有 1 个参数,第 2 个在第 1 行的命令行代码中给出

根据文档添加该参数:

5.4.32、5.5.16 添加了分隔符参数。

所以在@khorneholy的情况下,5.5.9不会有这个功能

我只想补充一下。

在我的一个系统PHP 5.6.30-11+deb.sury.org~trusty+3上,ucwords()抛出警告:

警告:ucwords() 只期望 1 个参数,其中 2 个在 ...

在我的另一个带有PHP 5.6.33-0+deb8u1的系统上,它工作正常。

最新更新