PHP supports the concept of variable functions. This means that if a variable name has parentheses appended to it, PHP will look for a function with the same name as whatever the variable evaluates to, and will attempt to execute it. Among other things, this can be used to implement callbacks, function tables, and so forth.

Variable functions won’t work with language constructs such as echo(), print(), unset(), isset(), empty(), include(), require() and the like. Utilize wrapper functions to make use of any of these constructs as variable functions.

 

Example #1 Variable function example

<?php
function foo() {
echo "In foo()<br />\n";
}
 

function bar($arg = ”)
{
echo “In bar(); argument was ‘$arg’.<br />\n”;
}

// This is a wrapper function around echo
function echoit($string)
{
echo $string;
}

$func = ‘foo’;
$func(); // This calls foo()

$func = ‘bar’;
$func(‘test’); // This calls bar()

$func = ‘echoit’;
$func(‘test’); // This calls echoit()
?>

An object method can also be called with the variable functions syntax.

Example #2 Variable method example

<?php
class Foo
{
function Variable()
{
$name = 'Bar';
$this->$name(); // This calls the Bar() method
}
 

function Bar()
{
echo “This is Bar”;
}
}

$foo = new Foo();
$funcname = “Variable”;
$foo->$funcname(); // This calls $foo->Variable()

?>

When calling static methods, the function call is stronger than the static property operator:

Example #3 Variable method example with static properties

<?php
class Foo
{
static $variable = 'static property';
static function Variable()
{
echo 'Method Variable called';
}
}
 

echo Foo::$variable; // This prints ‘static property’. It does need a $variable in this scope.
$variable = “Variable”;
Foo::$variable(); // This calls $foo->Variable() reading $variable in this scope.

?>

Google lanza android for Work para competir a nivel empresarial con Microsoft Google ha lanzado la versión de trabajo de Android para evitar que Microsoft gane espacio en el mercado empresarial móvil tras imponerse en el escrito...
Sobrellevar los problemas en el trabajo online al principio No importa cuando ni en qué momento hagas una búsqueda en Internet por oportunidades de ganar dinero desde casa, encontrarás cientos de resultados. Ha...
IMPLEMENTACIÓN DE ALGORITMOS La implementación es el proceso que toma la especificación del algoritmo y la traduce a una forma que pueda aplicarse a la solución del problema para...
Cuanto Tarda en Cargar una Página Web? Averigualo con Pingdom 2.0 Pingdom 2.0 es el renovado conjunto de tests con los que vamos a poder medir el tiempo de carga de una página web o blog, chequear el estado de nuestr...
jQuery 1.5.2 disponible jQuery 1.5.2 es un lanzamiento de mantenimiento de la recién estrenada versión estable de la librería de funciones JavaScript con la que reducir el ti...
Bing y Baidu aliados Tras el acuerdo entre Microsoft y Yahoo alcanzado hace ahora dos años por el que ambas compañías comparten durante 10 años sus sistemas de búsqueda y ...
Pronto podríamos pagar a través de Facebook y Twitter Con Paycento, una nueva plataforma de pago que se encuentra en fase beta, podríamos comprar online a través de Facebook o Twitter para identificarnos....
1.200 millones de apps fueron descargadas en la última semana de 2011 El negocio de las apps no decayó a final de año. Del 25 al 31 de diciembre se descargaron en todo el mundo más de 1.200 millones de aplicaciones móvil...
Verizon compra AOL por 4.400 millones de dólares Verizon, anunció la compra de America On Line (AOL) por 4.400 millones de dólares, en la que parece ser una de las adquisiciones más ambiciosas de la ...
Microsoft promete mas de 100mil Apps para Windows Phone 8 Falta muy poco para que la firma americana Microsoft presente la nueva versión de su sistema operativo para móviles, Windows Phone 8. De hecho, todo h...
Variable functions on PHP
Tagged on: