functie aanroep

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Ozzie PHP

Ozzie PHP

09/02/2012 12:14:35
Quote Anchor link
Hallo,

Ik heb een array met meerdere functies. Deze array is als volgt opgebouwd:

$functies = array('self' => 'test').

Nu wil ik middels een foreach loop de functie self::mijnfunctie($variabele) aanroepen en de return-waarde opslaan in een array. Echter, het werkt niet. Ik weet niet hoe ik de functie moet aanroepen vanuit de foreach loop:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$functies
= array('self' => 'mijnfunctie', 'Andere_Class' => 'anderefunctie);
$waardes = array();
foreach ($functies as $class => $functie) {
  $waardes[] = $class::$functie(true);
}

?>


Dit gaat echter niet goed:
$waardes[] = $class::$functie(true);

Iemand een idee hoe ik hier de functie kan aanroepen?
 
PHP hulp

PHP hulp

19/10/2019 18:16:13
 
Joakim Broden

Joakim Broden

09/02/2012 12:17:37
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$class.'::'.$functie.'(true);


Misschien iets doms maar anders zou ik het zo ook even niet weten :)
 
- SanThe -

- SanThe -

09/02/2012 12:20:51
Quote Anchor link
$waardes[] = $$class::$$functie(true);
 
Ozzie PHP

Ozzie PHP

09/02/2012 12:23:48
Quote Anchor link
Helaas, het werkt geen van beide. Poging 1 geeft 'm terug als string en poging 2 geeft een parse error. Nog meer suggesties?
 
- SanThe -

- SanThe -

09/02/2012 12:29:34
Quote Anchor link
$waardes[] = ${$class}::${$functie}(true);

Toevoeging op 09/02/2012 12:30:53:

http://www.phphulp.nl/php/tutorial/php-algemeen/variabel-denken/770/
 
Joakim Broden

Joakim Broden

09/02/2012 12:32:05
Quote Anchor link
$waardes[] = {$class}::{$functie}(true);

Ah SanThe was me voor, zat precies bij het zelfde tutorial te kijken.
Gewijzigd op 09/02/2012 12:41:15 door Joakim Broden
 
Ozzie PHP

Ozzie PHP

09/02/2012 12:33:10
Quote Anchor link
Heren, ik krijg nog steeds een parse error :(
 
Erwin H

Erwin H

09/02/2012 12:37:27
Quote Anchor link
Kan dat dan toevallig zijn omdat je hier aan het einde een quote bent vergeten?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$functies
= array('self' => 'mijnfunctie', 'Andere_Class' => 'anderefunctie);
?>
 
- SanThe -

- SanThe -

09/02/2012 12:38:39
Quote Anchor link
Ozzie PHP op 09/02/2012 12:33:10:
Heren, ik krijg nog steeds een parse error :(


Welke?
 
Ozzie PHP

Ozzie PHP

09/02/2012 12:39:26
Quote Anchor link
Goed gezien... maar dat was een typefoutje...

Toevoeging op 09/02/2012 12:41:31:

Fatal error: Class name must be a valid object or a string in...

Toevoeging op 09/02/2012 12:41:59:

Ook in m'n editor geeft ie rode kringetjes om aan te geven dat het niet klopt.
Gewijzigd op 09/02/2012 12:42:49 door Ozzie PHP
 
Joakim Broden

Joakim Broden

09/02/2012 12:42:11
Quote Anchor link
Heb je mijn code al geprobeerd want die heeft 2 $ minder dan die van SanThe.
Gewijzigd op 09/02/2012 12:42:34 door Joakim Broden
 
Ozzie PHP

Ozzie PHP

09/02/2012 12:44:00
Quote Anchor link
@HJ: Nee, helaas ook niet;
 
- SanThe -

- SanThe -

09/02/2012 12:46:03
Quote Anchor link
Welke heb je nou allemaal geprobeerd?
 
Ozzie PHP

Ozzie PHP

09/02/2012 12:46:59
Quote Anchor link
Ik heb ze allemaal geprobeerd.
 
- SanThe -

- SanThe -

09/02/2012 12:48:47
Quote Anchor link
Lijstje?
 
Ozzie PHP

Ozzie PHP

09/02/2012 12:49:50
Quote Anchor link
wat bedoel je?
 
- SanThe -

- SanThe -

09/02/2012 12:56:26
Quote Anchor link
$waardes[] = $$class::$$functie(true);
$waardes[] = ${$class}::${$functie}(true);

$waardes[] = ${$class}::${$functie(true)};
 
Ozzie PHP

Ozzie PHP

09/02/2012 12:57:38
Quote Anchor link
Die doen het allemaal niet. Ze geven zelfs al een syntax error in m'n editor.

Toevoeging op 09/02/2012 13:42:56:

heb het opgelost met behulp van forward_static_call()
 
Jacco Brandt

Jacco Brandt

09/02/2012 15:44:20
Quote Anchor link
Dat kan heel simpel met de functie call_user_func:

call_user_func(array($class, $functie));
Gewijzigd op 09/02/2012 15:44:35 door Jacco Brandt
 
Niels K

Niels K

09/02/2012 15:48:30
Quote Anchor link
Juist jacco! Daarnaast is het misschien nog mooi om te controleren of de methode daadwerkelijk bestaat? En of hij kan worden aangeroepen?
 
Ozzie PHP

Ozzie PHP

09/02/2012 15:51:09
Quote Anchor link
Ik heb dus deze gebruikt: forward_static_call

Volgens mij is dat beter omdat het om statische functies gaat? Zo niet dan hoor ik het graag!
 

Pagina: 1 2 volgende »



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.