ID: 8565
Updated by: zeev
Reported By: [EMAIL PROTECTED]
Old-Status: Analyzed
Status: Closed
Bug Type: Scripting Engine problem
Assigned To: 
Comments:

Fixed in the latest CVS - thanks!

Previous Comments:
---------------------------------------------------------------------------

[2001-01-08 14:10:56] [EMAIL PROTECTED]
The reason for this is simple - parent:: is the compile-time
definition and require/include is run-time, so when it meets
parent:: it does not know yet who it's parent is. I am not
sure it's resolvable now, but I'm leaving it for Zeev/Andi's
attention.

---------------------------------------------------------------------------

[2001-01-08 10:00:11] [EMAIL PROTECTED]
it will work if you include/require/require_once both 
.inc files from the file but not for nested includes
(extended class including base class to be extended)

:(

---------------------------------------------------------------------------

[2001-01-05 14:37:23] [EMAIL PROTECTED]
The following code gives the error:

file: base.inc
<?php

class Base {
    function Base(){}
    function doit() {
        echo "Class Base->doit()n";
    }
}
?>

file: a.inc
<?php
include("base.inc");
class A extends Base {
    function A(){}
    function doit() {
        parent::doit();
        echo "Class A->doit()n";
    }
}
?>

file: extend-test.php
<?php
include("a.inc");

$a = new A();

$a->doit();

?>

x:>php -f extend-test.php
Fatal error:  No parent class available in this context in a.inc on line 6



---------------------------------------------------------------------------

[2001-01-05 12:42:19] [EMAIL PROTECTED]
sorry, but i can't believe this as i
use this feature almost daily

can you pleas provide an example of
code _not_ working ?

---------------------------------------------------------------------------

[2001-01-05 12:22:36] [EMAIL PROTECTED]
the parent:: operator will work if both the parent and sub class are in the same 
physical file, but not if they are in a separate file.

This works:

<?php
class Base {
    function doit() {
        echo "Class Base->doit()n";
    }
}
class A extends Base {
    function doit() {
        parent::doit();
        echo "Class A->doit()n";
    }
}
?>

but if the two classes are in separate files, the following error is reported:
Fatal error:  No parent class available in this context in a.inc on line 6

Of course, this may be an undocumented feature, but I can see no reason for it.

---------------------------------------------------------------------------

The remainder of the comments for this report are too long.  To view the rest of the 
comments, please view the bug report online.


ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=8565&edit=2


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to