PHP 5.6中是否支持ucwords定界符参数?

时间:2017-03-03 09:41:47

标签: php php-5.6

根据the official documentation,PHP ucwords功能适用于 4 5 7 版本和支持版本 5.4.32 5.5.16 中引入的delimiter参数。

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

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

感谢您的时间。

3 个答案:

答案 0 :(得分:2)

代码

<?php

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

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

答案 1 :(得分:1)

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

使用5.6,您将获得预期的行为:

  

$ docker run -i php:5.6-cli php -r&#34; echo ucwords(&#39; hello | world&#39;,&#39; |&#39;)。 PHP_EOL; &#34;
  你好|世界

也许请问php --version您实际呼叫的是哪个版本?

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

  

docker run -i php:5.3-cli php -r&#34; echo ucwords(&#39; hello | world&#39;,&#39; |&#39;)。 PHP_EOL; &#34;

     

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

根据文档:

添加参数
  

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

因此,对于@khorneholy,5.5.9将没有此功能

答案 2 :(得分:0)

我只想补充一下。

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

  

警告:ucwords()预计在...

中给出1个参数,2

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