我需要创建一个函数,该函数在顶部读取我的变量并修复字符串,以使其中的每个单词都有一个大写字母。我目前的操作方式似乎无效。这是我所拥有的:
<?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;
?>
有人知道导致输出仍然小写的原因吗?
答案 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);