Functie via variabele opvragen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Spike Spade

Spike Spade

24/10/2008 00:10:00
Quote Anchor link
Hey,

Ik heb het volgende probleem

Ik heb
$actie = "login"

nu wil ik $loginController->login() aanroepen.

Dus de functie dmv de variabele aanroepen.

Heeft iemand enig idee hoe ik dit voor elkaar krijg?

Ik wil iets als $loginController->$actie()
 
PHP hulp

PHP hulp

24/11/2024 20:09:07
 

24/10/2008 00:16:00
Quote Anchor link
Lees dit eens, volgens mij is dit wat je zoekt.
Let wel op dat dit bad practice is, want je verliest alle controle over wat gebeurt... Waarschijnlijk heb je meer aan een switch.
 
Spike Spade

Spike Spade

24/10/2008 00:23:00
Quote Anchor link
Op de een of ander manier werkt dit niet wanneer het binnen een classe valt

Dus wanneer ik het moet aanroepen met $this->login() ipv $login()
 
Mathijs -

Mathijs -

24/10/2008 02:52:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
class nc{

    public function donow(){
        echo 'blaat';
    }


    public function trythis(){
        $type = $this;
        $func = 'donow';
        $type->$func();
        $this->$func();

    }
}


$a = new nc();
$a->trythis();
?>


deze echoed dus: blaatblaat
Gewijzigd op 01/01/1970 01:00:00 door Mathijs -
 
Jelmer -

Jelmer -

24/10/2008 11:58:00
Quote Anchor link
Alternatief: call_user_func_array. En om te controleren of het wel goed gaat komen kan je is_callable of method_exists gebruiken.

Controle of de method bestaat plus afscherming via protected/public keywords is een redelijk veilig wanneer de method-naam door de gebruiker opgegeven is.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.