Met m'n php script (op 5.3.1) heb ik volgend probleem:
Ik heb een Container class met &__get (by ref. voor array's) en __set, deze werkt perfect.
Daarbovenop wou ik nu een Config class maken die op te roepen is dmv Config::get('key')
(Config extends Container)
Als ik deze code los aanroep gaat alles perfect, maar het gaat in de mist wanneer ik de code oproep in een static context:
Alvast bedankt voor de mensen die mij wat in de goede richting kunnen duwen.
Ik heb een Container class met &__get (by ref. voor array's) en __set, deze werkt perfect.
Daarbovenop wou ik nu een Config class maken die op te roepen is dmv Config::get('key')
(Config extends Container)
PHP: class.Config.php
7
8
9
10
11
12
| public static function get($name){ // load configuration settings if(is_null(static::$instance)) static::load(); // return the value return static::$instance->$name; } |
PHP: class.Container.php
11
12
13
| public function &__get($name){ if($this->__isset($name)) return $this->$name; } |
Als ik deze code los aanroep gaat alles perfect, maar het gaat in de mist wanneer ik de code oproep in een static context:
PHP: file.php
41
42
43
| if(is_null(self::$routes)) self::$routes = Config::get('routes'); foreach( self::$routes as $controller => $pattern){ |
Ik heb al wat gezocht op Google naar deze foutmeldingen en ik snap dat het te maken heeft dat hij de return waarde van Config::get in static context niet graag als reference heeft ofzo. Ook heb ik verschillende oplossingen al geprobeerd (o.a. eerst de waarden in nieuwe vars steken, enz..), maar ik kom er nog niet uit.Notice: Only variable references should be returned by reference in class.Container.php on line 13
Notice: Indirect modification of overloaded property Config::$routes has no effect in class.Config.php on line 11
Notice: Only variable references should be returned by reference in class.Config.php on line 11
Warning: Invalid argument supplied for foreach() in file.php on line 43
Alvast bedankt voor de mensen die mij wat in de goede richting kunnen duwen.
[ Voor 3% gewijzigd door Hipska op 08-05-2010 13:10 . Reden: Extra code ]