Autor Zpráva
robbie
Profil *
Moc nechápu silně značený řádek, pomůže někdo? Jaký má význam. Děkuji

<?php
$a1 = "WILLIAM";
$a2 = "henry";
$a3 = "gatES";
echo $a1 . " " . $a2 . " " . $a3 . "<br />";
fix_names($a1, $a2, $a3);
echo $a1 . " " . $a2 . " " . $a3;
function fix_names(&$n1, &$n2, &$n3)
{
$n1 = ucfirst(strtolower($n1));
$n2 = ucfirst(strtolower($n2));
$n3 = ucfirst(strtolower($n3));
}
?>



Myslím tím toto: fix_names($a1, $a2, $a3); děkuji
anonymníí
Profil *
robbie:
Převede první písmena ze zadaných parametrů (tedy asi jmen) na velká, zbytek na malá. Ale nebude to fungovat na diakritické znaky na začátku, ty budou rozbité (třeba Čeněk).

$a1 = "WILLIAM";
$a2 = "henry";
$a3 = "gatES";
echo $a1 . " " . $a2 . " " . $a3 . "<br />";
fix_names($a1, $a2, $a3); // return "William Henry Gates"



Lépe by bylo return dát přímo do funkce, tedy

function fix_names($n1, $n2, $n3) { // vyházet "&" 
    $n1 = ucfirst(strtolower($n1));
    $n2 = ucfirst(strtolower($n2)); 
    $n3 = ucfirst(strtolower($n3));

    return "$n1 $n2 $n3";
}

echo fix_names('Pavel', 'MAReK', 'kaREL');
robbie
Profil *
dekuju, ale co potom tedy dělá tato funkce:

function fix_names(&$n1, &$n2, &$n3)
{
$n1 = ucfirst(strtolower($n1));
$n2 = ucfirst(strtolower($n2));
$n3 = ucfirst(strtolower($n3));
}
?>

a proč tady není uvedeno označení function? ale jen: fix_names($a1, $a2, $a3);
Joker
Profil
robbie:
Jde o definici funkce a volání funkce, viz nějaká učebnice programování.
Tori
Profil
robbie:
function fix_names($n1) { /* nejaky kod */ } = definice funkce
fix_names($promenna); = volání funkce

anonymníímu šlo mj. o to, že téhle funkci se proměnné předávají referencí, což je v mnoha případech nepřehledné a může to vést k tomu, že proměnná má najednou jinou hodnotu, než čekáte.
robbie
Profil *
dekuji moc za pomoc, o to mi šlo

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: