Nachtrag:
Wenn man auf den normalen Funktionsaufruf verzichtet, gibts noch mehr Alternativen.
PHP-Code:
<?php
error_reporting(-1);
ini_set('display_errors', TRUE);
function helau()
{
echo "Helau !!";
}
class Klingel
{
public function __invoke()
{
echo "Brriinngggg....";
}
public function piep()
{
echo "Beeb beeb beeb ....";
}
}
class Gong
{
public static function dengel()
{
echo "Doooiinngg...";
}
}
$arrayOfFunctions = array();
$arrayOfFunctions['tunix'] = create_function('',"echo 'ich tu nix';");
$arrayOfFunctions['helau'] = 'helau';
$arrayOfFunctions['telefon1'] = new Klingel;
$arrayOfFunctions['telefon2'] = array(new Klingel,'piep');
$arrayOfFunctions['gong2'] = array("Gong","dengel");
$arrayOfFunctions['gong1'] = "Gong::dengel"; // php 5.3.X
$arrayOfFunctions['tuwas'] = function(){echo 'ich tu was';}; // php 5.3.X
$params = array();
if(!empty($_REQUEST['funktion']))
{
if(isset($arrayOfFunctions[$_REQUEST['funktion']]))
{
call_user_func_array($arrayOfFunctions[$_REQUEST['funktion']],$params);
// $arrayOfFunctions[$_REQUEST['funktion']](); // kann leider nicht alles
}
}
echo '<hr>';
foreach($arrayOfFunctions as $name => $function)
{
echo "<a href='?funktion=$name'>$name</a> <br>";
}