Autor Zpráva
xciza
Profil
Ahoj,
dělám web v nette a potřeboval bych v jedné metodě získat proměnou z druhé metody. Mám nějakou metodu XY kde mám:
public function generate(){
$prom = 120 (toto číslo se mění a tahá z databáze)
}

a za ní druhou metodu Z a potřebuji se dostat na tu proměnou $prom.

Jak na to prosím? Stačí jak to udělat v čistým php..
Darker
Profil
tak proč ta metoda nevrátí to číslo?
Mám na mysli:
public function Z() {
  $prom = $this->generate();
}
public function generate() {
  $prom = /*???*/;
  return $prom;
}
Nebo můžeš hodnotu ukládat jako vlastnost objektu:
  private $prom = -1;
  public function Z() {
    /*pouzivas $this->prom*/
  }
  public function generate() {
    $this->prom = /*???*/;

  }
abc
Profil
function generate(){
return $prom;
}

$prom = generate();

function two($prom){
}
xciza
Profil
Jo to mě vůbec nedocvaklo tam hodit return :) . Ovšem problém nastal, když mam metodě generate předán parametr. Např. nějakou proměnnou z jiného souboru: public function generate($id){}. Když se na ni pak v té druhé metodě odkazuji tak to chce zadat také parametr... Když ho zadám tam na mě vyskočí chyba fatal error o překročeni něčeho...
abc
Profil
Když se na ni pak v té druhé metodě odkazuji tak to chce zadat také parametr
Nerozumím, můžeš ukázat?

dyž ho zadám tam na mě vyskočí chyba fatal error o překročeni něčeho
Cela hláška by nebyla od věci
xciza
Profil
Tak tedy konkrétně: mám tuto metodu:
public function actionGenerate($id) {
            
        $poptavka = $id;
return $poptavka;}

a pak v druhé metodě se na ni odkazuji:
        $prom = $this->actionGenerate();

Jenže to vypíše hlášku že chybí argument, tak ho tam dodám:
        $prom = $this->actionGenerate($id);
a pak dostanu hlášku:
Maximum function nesting level of '100' reached, aborting!
juriad
Profil
problém bude jinde než v ukázaném kódu, někde se volají dvě funkce navzájem (jedna druhou a druhá první)
nebo nějaká funkce volá sama sebe

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:

0