Jump to content
php.lv forumi

Vertību atgriezšana no funkcijas


7924

Recommended Posts

Tātad mans kods vispārīgi izskatās šādi

 

$i=0;

manafunkcija($vertiba, $i);

function manafunkcija($a, $b){

te viskaut kas notiek ar datubāzēm, utt

mansmainigais[$i]=no datubāzes iegūtā vērtība;
apaksfunkcija($t, $i);
}


function apaksfunkcija($a, $i){
$i++;
	manafunkcija($a, $i);
}

 

 

Rezultātā man vajag beigās iegūt mainīgos ārpus funkcijām

mansmainigais[0];

mansmainigais[1];

mansmainigais[2];

utt

mansmainigais[n]

 

kādā veidā tas notiek? Kurā vietā man likt to return un kādā veidā? Lieta tāda, kas caur funkciju tos mainīgos pa tiešu negribu uz ekrāna parādīt, es gribu pēc tam ar FOR ciklu pretējā kārtībā parādīt, bet tas jau būs ārā no funkcijas:

 

mansmainigais[n];

mansmainigais[2];

mansmainigais[1];

mansmainigais[0].

 

 

Kā tas darāms?

Link to comment
Share on other sites

Nē, jo tiek pirms return izsaukta apaksfunkcija() - tava piemera apaksfunkcija turpina ciklu, ja return tiktu izsaukts pirms apakshfunkcija(), tad tiktu atgriezts $mansmainigais[0] un cikls nemaz neturpinātos.

 

Palasi to linku kuru jau iepriekš iepostēju...

Link to comment
Share on other sites

ok, bet kāpēc tad pēc funkcijas man rāda ka $mansmainigais neko nsatur? Ieksa funkcija, kad ielieku echo $mansmainigais[$i]; vins visu izvada.

 

Iespējams, ka man tiešām rūpīgāk jāizlasa par "return" iekš php.net!

Edited by 7924
Link to comment
Share on other sites

Tapēc ka $mainigais nav globāls mainīgais. Pamēģini šādi:

<?php
$i=0;
$content = array();
$content[] = manafunkcija($vertiba, $i);

function manafunkcija($a, $b){

//te viskaut kas notiek ar datubāzēm, utt
apaksfunkcija($t, $b);

return $b;
}


function apaksfunkcija($a, $i){
global $content;
$i++;
if($i < 10) {
	 $content[] = manafunkcija($a, $i);
}

}

var_dump($content);
?>

 

Par globālajiem mainīgajiem vari palasīt seit: http://php.net/global

Link to comment
Share on other sites

sakuma ieliku

 

$content = array();

 

un manafunkcija() sakuma ieliku šo mainīgo kā GLOBAL un viss strādā. Zināju par to GLOBAL, bet neiedomājos par so $content = array()- likās, ka mainīgais autimātiski ir masīvs!

 

Paldies, viss strādā!

Edited by 7924
Link to comment
Share on other sites

likās, ka mainīgais autimātiski ir masīvs!

 

 

Mainīgais ir arī "automātiski masīvs", bet performace labad ir velams to iepriekš definēt kā masīvu. Tāpar arī $i++ vietā iesaku izmantot ++$i. Katra milisekunde ir svarīga.. ;)

Link to comment
Share on other sites

×
×
  • Create New...