Vaag probleem met protected

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stien ss

stien ss

25/04/2007 20:24:00
Quote Anchor link
Hallo,

Ik ben een heel raar probleem tegen gekomen, en het lijkt meer op een bug, maar zal het toch aan jullie voorschotelen.

( Probleem is trouwens alleen op mijn host, niet op localhost )

Ik heb deze classe ( verkort ) :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
    
    class MFW_Registry implements ArrayAccess, Iterator, Countable {
        
        protected $globals = array() ;
        
        // Magic methods
        public function __construct() {
        }

        
        public function __destruct() {
        }

        
        public function __get( $key ) {
            return $this->offsetGet ( $key );
            
        }

        
        public function __set ( $key, $value ) {
            $this->offsetSet ( $key, $value );
            
        }

        
        // IMPLEMENTATIONS
        
        //-- ArrayAccess

        public function offsetExists ( $offset ) {
            //------ HIER GAAT HET FOUT !.. HIJ HERKENT $this->globals niet
            return isset ( $this->globals [ $offset ] );
            
        }

        
        public function offsetGet ( $offset ) {
            //------ ZELFDE GELDT HIER
            if ( $this->offsetExists ( $offset ) ) {
                return $this->globals [ $offset ];
            
            }
else {
                throw new RangeException("Index " . $offset . " out of bounds in ". __CLASS__ . "::offsetGet");
            
            }
            
        }
        
    }


?>


Het is maar een verkorte versie, alle interfaces zijn gewoon geimplementeerd.

Het probleem is dus dat tie $this->globals niet kent, ik krijg namelijk deze foutmelding:

Quote:
Fatal error: Uncaught exception 'RangeException' with message 'Index globals out of bounds in MFW_Registry::offsetGet' in /ergens/class.MFW_Registry.php:87 Stack trace: #0 /ergens/class.MFW_Registry.php(15): MFW_Registry->offsetGet('globals') #1 /ergens/class.MFW_Registry.php(77): MFW_Registry->__get('globals') #2 /ergens/class.MFW_Registry.php(44): MFW_Registry->offsetExists('database') #3 /ergens/config.php(42): MFW_Registry->add('database', Object(DB_MySQL)) #4 /ergens/index.php(4): require_once('/mounted-storag...') #5 {main} thrown in /ergens/class.MFW_Registry.php on line 87


Als ik $globals private of public maakt werkt het wel.
Weet iemand wat het probleem is?
Gewijzigd op 01/01/1970 01:00:00 door Stien ss
 
PHP hulp

PHP hulp

28/03/2024 15:41:33
 
Manaus

Manaus

25/04/2007 20:27:00
Quote Anchor link
mss is het handig als we weten wat lijn 87 is;p
 
Stien ss

stien ss

25/04/2007 20:31:00
Quote Anchor link
haha.. ja is wel makkelijk:P

Het staat al in het script, maar de fout zit bij offsetExists()
 
Martijn B

Martijn B

25/04/2007 20:42:00
 
Stien ss

stien ss

25/04/2007 20:42:00
Quote Anchor link
Ik denk dat ik het probleem al heb. Mijn host heeft eAccelerator geinstalleerd ( v0.9.5 ) en nu zit ik dit te lezen:

lees

php5.2.1 vindt eAccelerator niet zo leuk dus
 
Stien ss

stien ss

25/04/2007 20:44:00
Quote Anchor link
@martijn: ook dat zou het kunnen zijn. Het vreemde is dat het wel werkt op localhost
 
Martijn B

Martijn B

25/04/2007 20:45:00
Quote Anchor link
Dan denk ik dat het aan eA ligt.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.