online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon gwen vom 22.06.2019, 21:44 Options

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

Zitat:
$fname="hole_".$a[0];
$fname();
Unübersichtlich?? Sei froh, dass sowas überhaupt geht - ist mir gänzlich neu!

Ansonsten ist Dir die Doku dieser Funktion sicherlich eine Hilfe: http://de2.php.net/manual/de/function.eval.php

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"

?>

Ähnliche Themen

Eigenen Funktionen
JoeKe  29.08.2006 - 1941 Hits -

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 09:21:55 2026