PHP ucwords函数问题

时间:2018-09-18 18:44:04

标签: php function

我需要创建一个函数,该函数在顶部读取我的变量并修复字符串,以使其中的每个单词都有一个大写字母。我目前的操作方式似乎无效。这是我所拥有的:

<?php
$course1 = "advanced web development";
$course2 = "mobile app development";
$course3 = "info systems with business intell";
function fixCourseName($courseName) {
    $courseName = ucwords($courseName);
}

fixCourseName($course1);
echo $course1;
?>

有人知道导致输出仍然小写的原因吗?

2 个答案:

答案 0 :(得分:2)

在将变量作为参数传递时,可以使用变量前面的&运算符通过引用传递它。这将更改您通过的变量,而不必返回它。然后在全局范围内更改该变量。

function fixCourseName(&$courseName) {
    $courseName = ucwords($courseName);
}
fixCourseName($course1);
echo $course1;

您还可以return新值,但是必须重新分配。

function fixCourseName($courseName) {
    return ucwords($courseName);
}
$course1 = fixCourseName($course1);
echo $course1;

更好的解决方案,如果fixCourseName()函数只使用ucwords(),那么您最好也使用

$course1 = ucwords($course1);
echo $course1;

请参阅此live demo,以查看全部操作。

答案 1 :(得分:0)

您的函数获取传递给它的字符串的副本,然后对其进行更新。如果您希望它影响传递给它的原始变量,则需要通过添加&来通过引用传递

function fixCourseName(&$courseName) {
    # Here ------------^
    $courseName = ucwords($courseName);
} 

如果您的函数只是调用ucwords,则实际上并不需要它-只需直接调用ucwords

$course1 = ucwords($course1);