Pereiti prie turinio

PHP Duoti funkciją kitai funkcijai kaip argumentą


Rekomenduojami pranešimai

Sveiki,

 

Turiu dvi klases, A ir B, ir yra A klasėj funkcija FA ir funkcija FB, ir klasėj B funkcija FC, ir noriu iš funkcijos FA paleisti funkciją FC perleidžiant funkciją FB, tai kad FC funkcijoje paleistų funkciją FB.

 

Tai pvz

 


class A {

function FA(){
 // sita funkcija paleidžiama pagal default'ą
 B->FC($var1,$var2,etc.., FB);
}

function FB($this){
 echo $this->test;
}

}


// (kitam faile)
class B {
 var $test = 'testas';
 function FC($var1, $var2, etc.., $func){
  $func($this); // išveda 'testas';
 }
}

 

Kažkas panašaus. Viskas vyksta CodeIgniter'yje.

 

Skaičiau apie anonimines funkcijas, tačiau parašius var function bla(){ } klasėje man išmetą error'ą.

Redagavo GPC
Nuoroda į pranešimą
Dalintis kituose puslapiuose

<?
class A{
   public function la()
   {
       return 5;
   }
}


//Jei klasė A kitame faile, tai turi naudoti autoloaderį ir namespace'us, arba paprastesnis variantas - require_once.
class B{
   public function la()
   {
       echo A::la();
   }
}

$B = new B;
$B -> la();

 

Manau galėsi pritaikyti ir pas save. PHP versija turi būti bent 5.3

Redagavo Steeler
Nuoroda į pranešimą
Dalintis kituose puslapiuose

<?
class A{
   public function la()
   {
       return 5;
   }
}


//Jei klasė A kitame faile, tai turi naudoti autoloaderį ir namespace'us, arba paprastesnis variantas - require_once.
class B{
   public function la()
   {
       echo A::la();
   }
}

$B = new B;
$B -> la();

 

Manau galėsi pritaikyti ir pas save. PHP versija turi būti bent 5.3

 

Kad naudoti A::la() tavo metodas turi būti declarintas kaip static. Kitas dalykas tai mano nuomone temos autoriu čia išvis kažkokią nesamonę nori daryt jei jau taip metodų callsai vaikšto.

 

Autoriaus vadinamos anoniminės funcijos taip rašosi

 


class A {

function aa($b, $callback){
 $callback($b);
}

}

$a = new A;
$a->aa('test', function($c){
 echo $c;
});

// result: test

Redagavo Flow
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...