Razlika return i echo

Pozdrav,

dali mi može neko reći kakva je razlika izmedju return i echo

kad napisem funkciju npr.

Funkcija radi i sa return i sa echo

Koja je razlika izmedju return i echo?

Pogledao si ovo:

Fali ti osnova… Probaj razumjeti što su funkcije. Vjerujem da se u srednjoj školi u 4. razredu (večina tehničara/gimnazija…) ili prva godina faksa to uči. Najjednostavnije rečeno funkcija prima parametre i vraća (return) rezultat, a echo ili print su funkcije za ispis.
Prvi primjer ti je čisto

$i='Mercedes'; 

function automobil($i) 
{ 
     return $i; 
} 

echo automobil($i);

Da mu makneš funkciju koja ništa ne radi nego samo vraća parametar dobio bi od ovoga
echo $i;
U drugom primjeru funkcija automobil ispisuje parametar $i.
Pogledaj manual, to je must.

http://www.php.net/return

http://www.php.net/echo

i mora ti sve biti jasno.

Nikada ne koristi echo u funkcijama, nego return. Return vraća rezultat, pa korisnik radi s time što želi, a echo ispisuje rezultat.

npr:

[php]<?php

function ispisi()
{
return ‘Neka vrijednost’;
}

ispisi(); // output je prazan
echo ispisi(); // output je Neka vrijednost

function ispisi2()
{
echo ‘Neka vrijednost’;
}

ispisi(); // output je Neka vrijednost
echo ispisi(); // output je Neka vrijednost

/* u ispisi() mozes raditi sa rezultatom sto god zelis, dok u ispisi2() ne mozes, jer ce ispisati rezultat */

?>[/php]

Upravo kako je jojo napisao.

echo i print naredbe se nikada ne koriste u metodama i funkcijama jer time dobijaš to da user čim pozove funkciju ima ispis na ekran.

Funkcije i metode moraju vraćati vrijednost i onda ja kao korisnik odlučujem što ću s njom i gdje ću je ispisati.

Primjer:

— ne valja —
[php]

<?php function de_nesto() { echo "eto ti nesto"; } ?> <?php de_nesto(); /* tu ce mi se sad ispisati "eto ti nesto" */ ?>

[/php]

– ispravno –
[php]

<?php function de_nesto() { return "eto ti nesto"; } ?> <?php $ispis = de_nesto(); /* vrijednost koju vraca funkcija se dodjeljuje varijabli */ ?> <?php echo $ispis; ?>

[/php]

Znači poanta je da me funkcija ne forsira da je pozovem tamo gdje hoću ispis, nego da je mogu pozvati gdje hoću, spremiti vrijednost koju vraća u varijablu i ispisati je gdje hoću.