phpbar.de logo

Mailinglisten-Archive

[php] Objektvariable parametrisieren?

[php] Objektvariable parametrisieren?

Ulf Wendel ulf_(at)_redsys.de
Fri, 28 Jul 2000 15:29:35 +0200


Oliver Kummerow wrote:
> 
> Hallo,
> 
> ist folgendes "legal" oder eher ein Hack:
> 
> $Objekt->$varname
> 
> Über die Verwendung von $varname lassen sich Objekt-, bzw. dern
> Instanzvariable parametrisiert abfragen. Wenn man davon ausgeht,
> das Objekte eine spezialisierte Anwendung von Arrays sind, sollte
> es wohl ok sein?

Naja, es geht einiges, trotzdem würde ich die Finger davon lassen. Es
kommt kein gut lesbarer Code dabei raus.

<?php
class foo {
 var $bar = "barfoo";
	var $barfoo = "barfoo class var";
	
	var $foobar = "foobar inside class";
	
	function foo() {
		
		 $barfoo = "barfoo";
			print "Local using class: ".${$this->bar}."<hr>";
			
			# Mit keyword $this den "nächst" großeren Scope ansprechen.
			print "Class using local: ".$this->$barfoo."<hr>";
			
	  print "Class using class: ".$this->${$this->bar}."<hr>";
	}
	
}

$f = new foo;

$barfoo = "foobar";
print "Global using object: ".${$f->bar}."<hr>";

# Mit dem Objekt das Objekt ansprechen.
print "Object using object: ".$f->${$f->bar}."<hr>";
?>

Eigentlich sollte man solchen Code gar nicht erst posten. $$foo/${$foo}
ist was für den sparsamen Einsatz. Es gibt einige, wenige Stellen an
denen es hilfreich ist, im obigen Code sicherlich nicht. Warum das auch
mit Objekten geht? Objekte nur ein normaler Variablentyp in PHP.
Verwirrend ist das alles schon, wenn man bedenkt das ein Objekt
irgendwie auch noch eine Referenz ist...

Laß einfach die Finger davon. Es wurde komplett implementiert, ist aber
kein guter Stil.

Ulf


php::bar PHP Wiki   -   Listenarchive