Supportnet Computer
Planet of Tech

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

funktion mit halbvariablem namen aufrufen





Frage

hallo! wie kann ich eine funktion mit "halbvariablem" namen aufrufen? beispiel: [code] $a=array("muller","maier"); "hole_".$a[0](); function hole_muller(){ echo "muller"; } [/code] gibt einen syntaxfehler. wie gehts richtig, geht es überhaupt? was natürlich geht ist: [code] $fname="hole_".$a[0]; $fname(); [/code] ist aber unübersichtlicher. vielen dank!

Antwort 1 von Hobst_Eppers

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

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

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

hi hobst!

wie lautet denn der inhalt der funktion? (=>"undefined function")

Antwort 5 von son_quatsch

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"

?>


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: