根据官方文档,PHP
ucwords
函数适用于版本4、5、7,并支持在版本5.4.32和5.5中引入的
delimiter
参数.16.
因此,我希望
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 个参数,第 1 行命令行代码中给出的 2 个参数
根据文档添加了参数:
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
,它工作正常。