funktion mit halbvariablem namen aufrufen
hallo!
wie kann ich eine funktion mit "halbvariablem" namen aufrufen?
beispiel:
$a=array("muller","maier");
"hole_".$a[0]();
function hole_muller(){
echo "muller";
}
gibt einen syntaxfehler.
wie gehts richtig, geht es überhaupt?
was natürlich geht ist:
$fname="hole_".$a[0];
$fname();
ist aber unübersichtlicher.
vielen dank!
Antwort schreiben
Antwort 1 von Hobst_Eppers vom 23.06.2019, 01:14 Options
Antwort 2 von gwen vom 24.06.2019, 20:29 Options
danke für den guten tipp!
Zitat:
ist mir gänzlich neu!
kennste schon variable variablennamen? auch ein lustiges feature.
$schwarz="dunkel";
$katze="schwarz";
echo $$katze;
Antwort 3 von Hobst_Eppers vom 25.06.2019, 00:45 Options
Jup, das war mir schon bekannt :P Die Antwort lautet "dunkel".
Vor ca. einem Jahr hat mal einer gefragt, ob man den Namen einer Variable herausbekommen könnte, z.B. auf folgende Weise:
$foo= "bar";
echo yourNameIs($foo);
...gibt "foo" aus. Eine Operation von tief unten hinten an die Augen ran, aber es klappt ;-) DAS nenn ich schräg!
Antwort 4 von gwen vom 27.06.2019, 17:27 Options
hi hobst!
wie lautet denn der inhalt der funktion? (=>"undefined function")
Antwort 5 von son_quatsch vom 27.06.2019, 22:23 Options
Das möchtest Du gar nicht wissen! Aber hier eine Vorführung:
<?php
function vname(&$var, $scope=false, $prefix='unique', $suffix='value')
{
if($scope) $vals = $scope;
else $vals = $GLOBALS;
$old = $var;
$var = $new = $prefix.rand().$suffix;
$vname = FALSE;
foreach($vals as $key => $val) {
if($val === $new) $vname = $key;
}
$var = $old;
return $vname;
}
$o= 'test';
echo vname($o); // this outputs "o"
?>