$n3 = ucfirst(strtolower($n3)); //them through a lower case method then a // first letter upper case method return $n1 . " " . $n2 . " " . $n3; } echo $name1 . " " . $name2 . " " . $name3 . "<br>"; echo fix_names($name1, $name2, $name3) . "<br><br>"; echo "<strong>Fixing array of names to upper case first letter round 2</strong> <br>"; function fix_names2($n1, $n2, $n3) { $n1 = ucfirst(strtolower($n1)); $n2 = ucfirst(strtolower($n2)); $n3 = ucfirst(strtolower($n3)); return array($n1, $n2, $n3); } $names = fix_names2($name1, $name2, $name3); echo $name1 . " " . $name2 . " " . $name3 . "<br>"; echo $names[0] . " " . $names[1] . " " . $names[2] . " <br><br>"; echo "<strong>Fixing array of names to upper case first letter round 3</strong> <br>"; function fix_names3() { global $name1; $name1 = ucfirst(strtolower($name1)); global $name2; $name2 = ucfirst(strtolower($name2)); global $name3; $name3 = ucfirst(strtolower($name3)); } echo $name1 . " " . $name2 . " " . $name3 . "<br>"; fix_names3(); echo $name1 . " " . $name2 . " " . $name3 . "<br><br>";
<?php /* Comparing two functions which alter variables * in the calling environment. The first returns an array * and the second declares its parameters to be global. Both * have the same effect. */ $names = fix_names1("WILLIAM", "henry", "gatES "); echo $names[0] . " " . $names[1] . " " . $names[2] . "<br />"; fix_names2("WILLIAM", "henry", "gatES"); echo $names[0] . " " . $names[1] . " " . $names[2]; function fix_names1($n1, $n2, $n3) { $n1 = ucfirst(strtolower($n1)); $n2 = ucfirst(strtolower($n2)); $n3 = ucfirst(strtolower($n3)); return array($n1, $n2, $n3); } function fix_names2($n1, $n2, $n3) { global $n1; $n1 = ucfirst(strtolower($n1)); global $n2; $n2 = ucfirst(strtolower($n2)); global $n3; $n3 = ucfirst(strtolower($n3)); }