Maniac
Erfahrenes Mitglied
Ich versuche mit Überladung eine Variable die deklariert wurde wieder mit einer Methode auszulesen, was aber nicht funktionieren will.
Hab ich da einen Denkfehler****
Ausgabe:
Was mach ich falsch?
Hab ich da einen Denkfehler****
PHP:
<?php
class test
{
protected $_ungivenVars = array();
public function __set($sName, $mVal) {
$this->_ungivenVars[$sName] = $mVal;
return $this;
}
public function __get($sName) {
if (array_key_exists($sName, $this->_ungivenVars)) {
return $this->_ungivenVars[$sName];
}
throw new Exception('Es existiert keine Eigenschaft mit dem Namen: ' . $sName);
}
public function __call($sMethod, $aArguments) {
$sSwitch = strtolower($sMethod);
switch (substr($sSwitch, 0,3)) {
case 'set' : self::__set(substr($sSwitch, 3), implode('', $aArguments));
break;
case 'get' : self::__get(substr($sSwitch, 3));
break;
}
}
}
$test = new test();
$test->setFoo('bar');
var_dump($test->foo);
var_dump($test->getFoo());
Ausgabe:
Code:
string(3) "bar"
NULL
Was mach ich falsch?