Raketenwilli: Objekt als Konstante... Nicht alles geht. Aber ,,,,

Beitrag lesen

<?php
class Foo {
	
	var $foo = 0;
	var $bar = 0;
	function __construct( $foo, $bar ) {
		$this->foo = $foo;
		$this->bar = $bar;
	}
	function setFoo( $v ) {
		$this->foo = $v;
	}
	function setBar( $v ) {
		$this->bar = $v;
	}	
	
}

define (
	'Objekt',
	new Foo(1,1)
);

echo 'Objekt->foo : ' . Objekt->foo . PHP_EOL;
echo 'Objekt->bar : ' . Objekt->bar . PHP_EOL;

### Das geht nicht:
#Objekt->bar=2;
#Objekt->bar=2;
#echo 'Objekt->foo : ' . Objekt->foo . PHP_EOL;
#echo 'Objekt->bar : ' . Objekt->bar . PHP_EOL;


### Mit den Settern geht es aber:
Objekt->setFoo(2);
Objekt->setBar(2);

echo 'Objekt->foo : ' . Objekt->foo . PHP_EOL;
echo 'Objekt->bar : ' . Objekt->bar . PHP_EOL;
Objekt->foo : 1
Objekt->bar : 1
Objekt->foo : 2
Objekt->bar : 2

Fazit: Sogar Eigenschaften eines Objektes sind auch dann veränderlich, wenn das Objekt als Konstante abgelegt wurde. Aber nur mittels einer Objekt-Methode wie den gezeigten Settern.