Jump to content
php.lv forumi

mainīgais no funkcijas


stencilz

Recommended Posts

Tā kā marrtins dara, tā nekad nekad nevajag darīt.

 

stencilz: funkciju viens no lielajiem labumiem ir tādas, ka tas ir atsevišķs koda gabls, kas izdara ko tam vajag un nejaucās pa citiem mainīgajiem. Tb apstrādā/izrēķina kautko un atgriež rezultātu ar return.

Link to comment
Share on other sites

function a()
{
$GLOBALS['x'] = 1;
}

print $x';

nekas nav sliktaaks kaa GLOBALS defineet ieksh f-jas !!!

1. shadu f-ju buus gruuti pielaagot citam skriptam.

jo Nekad nevareesi zinaat vai saads mainiigais jau kautkur neparaadaas

2. lai nododu f-ja maniigos ir RETURN kuru buutu veelams izmantot vienmeer !!! pat ja funkcija neko netgriezj tad galaa RETURN TRUE;

(vai FALSE ja vajag)

3. ja peeksnji vajag padod aaraa vairaakus mainiigos tad to elementari var izdariit ar &

function test($a,$b)
{
 $a++;
 $b++;
 return $a;
}

$cc=1;
$dd=2;

echo test($cc,$dd);// rezultaats 2
echo $dd; // rezultaats 2
/////
//  PELIEKAM &

///
echo '<br>';
echo test($cc,&$dd); // rezultaats 2
echo $dd; // rezultaats 3 !!!!

to & var izmantot pa taisno pie f-jas defineeshanas BET OBLIGATI TIKAI 1 VIETAA vainu pie definesanas vai pie izsauksanas....

Edited by Grey_Wolf
Link to comment
Share on other sites

2. lai nododu f-ja maniigos ir RETURN kuru buutu veelams izmantot vienmeer !!! pat ja funkcija neko netgriezj tad galaa RETURN TRUE;

(vai FALSE ja vajag)

Priekš kam tas vajadzīgs? Tikai lieks kods, un nesaprašana pašam/citam, kad vēlāk lasīsi kodu.

 

3. ja peeksnji vajag padod aaraa vairaakus mainiigos tad to elementari var izdariit ar &

Var arī šādi:

function xx() { ... return array($a, $b, $c); }
...
list($x, $y, $z) = xx();

Link to comment
Share on other sites

Es parasti arī cenšos vienmēr likt return, jo:

1) Reizēm tomēr gadās, ka fju nāksies izmantot iekš kādas ekspressijas.

2) Funkcija taču vienmēr kaut ko dara, kaut vai tā arī neko neatgriež, rezultāts ir vai nu pozitīvs (fja savu darbu izdarīja) vai arī negatīvs. Un to vajag atrgriezt manuprāt.

Link to comment
Share on other sites

1) e? kādas vēl ekspresijas? Ja jau tev ir izteiksme, kurā tu kautko rēķini, tad jau funkcijas atgriežamā vērtība tiks ierēķināta. Kāda jēga ierēķinā kautko, ko tu zini, ka tas ir nekas, tb konstante kautkāda?

2) nu ja vajag atgriezt statusu, darbības rezultātu, tad jā, tad atgriežamā vērtība ir ok. Bet nu es no Grey_Wolf teiktā sapratu, ka viņš liek returnu tikai tāpēc lai būtu returns, pat ja atgriežamā vērtība ir kautkas bezjēdzīgs. Un tam es nepiekrītu.

Link to comment
Share on other sites

Grey_Wolf, laikam gan izteiksmi test($cc,&$dd) tomēr vajag paskaidrot cilvēkam sakarīgāk. Jo, pēc būtības, tam nav nekāda sakara ar atgriežamajām vērtībām - tā ir maldināšana.

Tas ir veids, kā funkcijai kā argumentu padot variabļa referenci (norādi), un funkcija nevis izveido savu lokālo variabļa kopiju, kā tas parasti tiek darīts, bet veic darbības ar oriģinālo variabli. Ja iet runa par vairāku vērtību atgriezšanu, tad būtu jālieto bubu variants ar atgriežamu masīvu. References tomēr ir specifiska lieta, ko būtu jālieto ar apdomu.

Edited by john.brown
Link to comment
Share on other sites

×
×
  • Create New...