根据官方文档,PHPucwords
函数可用于版本 4、5、7,并支持版本5.4.32和5.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
的系统上,它工作正常。