Was ist, macht call_user_func ?
Eingetragen von quiptime (4972)
am 06.10.2007 - 22:54 Uhr in
am 06.10.2007 - 22:54 Uhr in
Was ist und macht
call_user_func
Kann mir das bitte Jemand kurz erklaeren.
- Anmelden oder Registrieren um Kommentare zu schreiben
scheint nicht sehr bekannt
am 08.10.2007 - 06:15 Uhr
scheint nicht sehr bekannt zu sein. Was ich gesehen habe: Nur kannst der Funktion eine Funktion übergeben, aber was die dann macht...?
___________________________
it's easier than you think
Raphael Schär
http://www.schaerwebdesign.ch
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
quiptime wrote:
am 04.12.2007 - 00:47 Uhr
Was ist und macht
call_user_func
call_user_func ist eine Funktion. Sie ruft eine andere Funktion auf; nämlich die, die durch den ersten Parameter gegeben ist. Sie übergibt die restlichen Parameter an diese Funktion und liefert das Ergebnis, das die durch den ersten Parameter gegebene Funktion liefert.
<?php
$func = 'mt_rand';
$min = 1;
$max = 49;
$result = call_user_func($func, $min, $max);
?>
$result
ist jetzt eine Pseudozufallszahl zwischen 1 und 49. Im Prinzip hättst du auch schreiben können<?php
$result = $func($min, $max);
?>
call_user_func
hat aber noch einige Schmankerl in Petto:<?php
class Benutzer {
public static function authentifiziere($name, $passwort) { /* Liefert ein Benutzer-Objekt */ }
public function abmelden() { }
}
$klasse = 'Benutzer';
$methode = 'authentifiziere';
// Die Syntax $benutzer = $klasse::$methode($parameter) wird nicht unterstützt. Deshalb:
$benutzer = call_user_func( array($klasse, $methode), 'quiptim', 'qwertyuiop');
$methode = 'abmelden';
// Ob $benutzer->$methode() unterstützt wird weiß ich nicht. Auf jeden Fall funktioniert:
call_user_func(array($benutzer, $methode));
?>
Du braucht
call_user_func
also, wenn du erst zur Laufzeit weißt, welche Funktion/Klasse/Methode du verwendest.Richtig interessant wird es mit
call_user_func_array
. Diese Funktion brauchst du, wenn du erst zur Laufzeit weißt, wieviele Parameter du übergeben willst.@traxer, Danke und Wow.
am 04.12.2007 - 01:36 Uhr
@traxer,
Danke und Wow. Jetzt weiss ich an wen ich mich bei speziellen PHP Problemen wenden kann.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.