Archiv verlassen und diese Seite im Standarddesign anzeigen : Variablennamen von Object ermitteln
Hallo PHP Experten
Kann man in PHP5 den Variablenamen eines Objektes mit Hilfe einer Funktion ermitteln ?
Folgendes Beispiel soll das verdeutlichen:
class Object{
function getVariable(){
$variablename=??????();
echo('Der Variablenname lautet'. $variablenname);
}
}
$variable = new Object()
$variable->getVariable();
$variable_2 = new Object()
$variable_2->getVariable();
als Output soll
Der Variablenname lautet variable
Der Variablenname lautet variable_2
erscheinen
Any Idea ?
Gruss LeBon
nein, geht nicht, wofür brauchst du das denn?
Ist dazu gedacht, um rauszufinden, welche Instanz eines Objectes, diesesbenutzt.
Ein Vorschlag aus einem anderen Forum:
class OBJECT {
function get_name() {
$vars_used = Array();
foreach($GLOBALS as $k=>$v)
if(is_object($v) && (get_class($v) == get_class($this)))
$vars_used[$k] = array_key_exists($k,$vars_used) ? $vars_used[$k]+1 : 1;
return join(', ', array_keys($vars_used));
}
}
$variable = new OBJECT();
echo "Der Variablenname lautet: " . $variable->get_name() . "\n";
$variable_2 = new OBJECT();
echo "Der Variablenname lautet: " . $variable_2->get_name() . "\n";
Der Vorschlag ist per se nicht schlecht, ich habe da eher was in Richtung Reflection, was bei PHP5 neu implementiert wurde, gedacht. Ich bin aber bei php.net oder auch google nicht so fündig geworden.
undefined
26-02-2009, 15:13
Ich glaube er meint __function__
<?php
class Object
{
function getVariable()
{
echo('Der Variablenname lautet : ' . __FUNCTION__ . " :" . __CLASS__ . ":" . __METHOD__ );
}
}
$variable = new Object();
$variable->getVariable();
$variable_2 = new Object();
$variable_2->getVariable();
?>
Wenn nicht dann sie __get und __set
undefined
26-02-2009, 15:31
nein, geht nicht, wofür brauchst du das denn?
Sag niemals nie :D
<?php
class Object
{
function getVariable()
{
$my_variable = "NULL";
var_dump ( "<pre>", get_defined_vars( __METHOD__ ), "</pre>" );
}
}
$variable = new Object();
$variable->getVariable();
$variable_2 = new Object();
$variable_2->getVariable();
?>
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.