|
Posted by Greg Beaver on 01/09/05 23:03
James wrote:
> I'm struggling to narrow this down, and am chasing my tail to figure
> this out. I apologise for the imprecise nature.
>
> PHP: 4.3.2 (latest RHEL 3 version; php-4.3.2-19.ent.src.rpm)
> OS: Linux kernel 2.4.21-15.0.3.EL
> Distro: RHEL 3, all updates
>
> I have an app that defines two global class instances, one for the
> database connection, the other for handling user authentication. The
> first is instantiated in uDatabase.php the other in uAuthenticate.php.
>
> In building a page, there are several files that call require_once with
> one or the other file, e.g.
>
> require_once 'uAuthenticate.php';
>
> Which creates an a global instance of a class defined in another file,
> performs some checks, &c.
>
> I'm using require_once with the understanding that once this file has
> been included, that any subsequent require_once call to the same file
> will be ignored.
>
> My problem is that it appreas that in some cases require_once destroys
> the instance, i.e. var_dump($Auth); or var_dump($Database) displays NULL.
>
> I'm currently trying to determine rhyme or reason for the problem, but
> haven't found any pattern. It comes and goes depending on which file
> first calls require_once and the order, but makes no sense.
>
> ANY ideas apreciated. :-)
Since you are using relative includes (require_once 'uAuthenticate.php';)
You must make sure that there is only *1* uAuthenticate.php file being
included. To verify that this is the case, try this code at the end of
the main file:
<?php
var_dump(get_included_files());
?>
If you switch the ordering of inclusion and get a different listing,
there's your answer.
Greg
[Back to original message]
|