Hoi, ik zit met het volgende: een klasse maakt gebruik van een array waarin alle gevonden error's horen te komen. De init-functie stelt de errorhandler in, maar na trigger_error() blijkt de array met gevonden errors niets te bevatten... als er dan nog een trigger_error wordt gegeven en ik print de array vanuit de handler dan blijkt de array toch dingen te bevatten.
Ik vermoed daarom dat er twee versies van het object zijn oid, hoewel ik toch echt een reference gebruik, kan ik het haast niet anders verklaren. De vraag is: waarom??
Ik vermoed daarom dat er twee versies van het object zijn oid, hoewel ik toch echt een reference gebruik, kan ik het haast niet anders verklaren. De vraag is: waarom??
PHP:
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
| <? $myObject = new myClass(); $myObject->errorReport(); class myClass { var $error; function myClass() { error_reporting(0); set_error_handler( array( &$this, 'myErrorHandler' ) ); } function myErrorHandler($errno, $errstr, $errfile, $errline) { $this->error[] = 'errordata'; // dit print de hele lijst met errors, ook eerder doorgegeven errors print_r($this->error); } function errorReport() { // dit zou moeten vullen trigger_error('er gaat iets mis', E_USER_ERROR); trigger_error('er gaat nog iets mis', E_USER_ERROR); // maar dit print een lege array print '<Br><br><b>Komtie dan he:</b>'; print_r($this->error); } } ?> |