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

Is ucwords delimiter parameter supported in PHP 5.6?

根据 the official documentation,PHP ucwords 函数可用于版本 45, 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; "
Hello|World

也许可以检查 php --version 你实际调用的是什么版本?

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

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

Warning: ucwords() expects exactly 1 parameter, 2 given in Command line code on line 1

根据文档添加参数:

5.4.32, 5.5.16 Added the delimiters parameter.

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

我只是想补充一下。

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

Warning: ucwords() expects exactly 1 parameter, 2 given in ...

在我使用 PHP 5.6.33-0+deb8u1 的其他系统上,它工作正常。