Variablenfunktionen

PHP unterstützt das Konzept der Variablenfunktionen . Wenn Sie an das Ende einer Variablen Klammern hängen , versucht PHP eine Funktion aufzurufen , deren Name der aktuelle Wert der Variable ist . Dies kann unter anderem für Callbacks , Funktionstabellen , usw . genutzt werden .

Variablenfunktionen funktionieren nicht mit Sprachkonstrukten wie echo( ) , print( ) , unset( ) , isset( ) , empty( ) , include( ) und require( ) . Sie müssen Ihre eigenen Wrapperfunktionen verwenden , um diese Konstrukte als variable Funktionen benutzen zu können .

Beispiel 13-3 . Beispiel für Variablenfunktionen

 
?php

 
function

 
foo(

 
)

 
{

 
echo

 
"In

 
foo(

 
)

 
br

 
\n"

 
;

 
}

 
function

 
bar($arg

 
=

 
''

 
)

 
{

 
echo

 
"In

 
bar()

 
;

 
der

 
Parameter

 
ist

 
'$arg'

 
.

 
br

 
\n"

 
;

 
}

 
/

 
/

 
Dies

 
ist

 
eine

 
Wrapperfunkiton

 
für

 
echo

 
function

 
echoit($string

 
)

 
{

 
echo

 
$string

 
;

 
}

 
$func

 
=

 
'foo'

 
;

 
$func()

 
;

 
/

 
/

 
Dies

 
ruft

 
foo(

 
)

 
auf

 
$func

 
=

 
'bar'

 
;

 
$func('test')

 
;

 
/

 
/

 
Dies

 
ruft

 
bar(

 
)

 
auf

 
$func

 
=

 
'echoit'

 
;

 
$func('test')

 
;

 
/

 
/

 
Dies

 
ruft

 
echoit(

 
)

 
auf

 
?





Sie können auch die Methode eines Objektes mittels der variablen Funktionen aufrufen .

Beispiel 13-4 . Variable Methode

 
?php

 
class

 
Foo

 
{

 
function

 
Var(

 
)

 
    {

 
$name

 
=

 
'Bar'

 
;

 
$this

 
-

 
$name()

 
;

 
/

 
/

 
Dies

 
ruft

 
die

 
Bar(

 
)

 
Methode

 
auf

 
    }

 
function

 
Bar(

 
)

 
    {

 
echo

 
"Das

 
ist

 
Bar"

 
;

 
    }

 
}

 
$foo

 
=

 
new

 
Foo()

 
;

 
$funcname

 
=

 
"Var"

 
;

 
$foo

 
-

 
$varname()

 
;

 
/

 
/

 
Dies

 
ruft

 
$foo

 
-

 
Var(

 
)

 
auf

 

?





Siehe auch call_user_func( ) , Variable Variablen und function_exists( ) .