I posted this on general a while ago and the only conclusion anyone could come to is that there's a PHP bug somewhere. I'm running a snap of 5.1 from today on OS X 10.4.2, and I've seen the same symptoms on RedHat EL4. Before I report something does anyone here have any idea what could be amiss here?

I have a simple situation:

in a.inc.php:

<?php
$a = 1;
?>

in b.class.php:

<?php
require 'a.inc.php';
class b {
    function test() {
        global $a;
        echo $a;
    }
}
?>

With this pattern, $a is NOT visible within class b, even though it is declared in the global scope and I'm using the global keyword! I can work around it two ways; by changing the original declaration (which just seems wrong - it's already in the global scope at this point):

<?php
global $a;
$a = 1;
?>

or by requiring the inc file inside each function of b (much less efficient):

<?php
class b {
    function test() {
        require 'a.inc.php';
        global $a;
        echo $a;
    }
}
?>

What's going on here? I feel like I'm going nuts over something so simple.

I have another problem with included classes that seems to defy explanation:

<?php
require_once 'Config.php';
$a = new Config;
?>

Fatal error: Class 'Config' not found

but the error is from the new, not the require! This class is straight from PEAR, and I have /usr/local/libs/php in my include path which does contain Config.php. If I change the require to something that really doesn't exist, I get (as expected):

Fatal error: Failed opening required 'xConfig.php'

Is there some "stop_working=true" flag I've left in php.ini?

Marcus
--
Marcus Bointon
Synchromedia Limited: Putting you in the picture
[EMAIL PROTECTED] | http://www.synchromedia.co.uk

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to