PHP 4.0 Bug #8816 Updated: cross subscript object variable access
| From: | andre@php.net | Date: | Tue, 20 Feb 2001 06:15:52 +0000 |
| Subject: | PHP 4.0 Bug #8816 Updated: cross subscript object variable access | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-46993@lists.php.net to get a copy of this message | ||
ID: 8816
Updated by: andre
Reported By: tenshi@cinter.de
Old-Status: Open
Status: Feedback
Bug Type: Class/Object related
Assigned To:
Comments:
Please provide a reduced code fragment (<15 lines) producing
this behaviour.
Put no database queries etc. in it and rely on no external
files/functions to ensure that we can reproduce it easily
unless the problem is not directly related to some db (or
similar) function.
Previous Comments:
---------------------------------------------------------------------------
[2001-01-19 22:15:50] tenshi@cinter.de
I today found out a strange thing about the PHP4 object/variable handling that I can not understand.
My main script first clones a provider class and stores the new object into $MAINPROV;
Then it includes two files that give back two elements of the page.
My provider class has some subclasses. These shall be loaded on demand with functions like
getFooProvider(). Theese functions test via <pre>is_object($this->FOO)</pre> if the
class is already loaded. If not it includes the file containing the class definition and spawns
<pre>$this->FOO = new foo($this)</pre>.
Now listen to this: If I use the load-function in the main script all works fine. But if the class
is loaded from one of the subclasses (into the main provider class object that is a variable in the
main script) it cannot be accessed in the other subscript, the second element. This causes the
foo-class-file to be reloaded and throws out an error message because the class is already defined.
If anybody can help, it would be very very sad if I had to workaround pre-loading every subclass
that can be used on this page, because I wanted to make it dynamically load the classes. Thanks!
---------------------------------------------------------------------------
ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=8816&edit=2