There appears to be a bug in the implementation of inheritance in PHP4. Has anyone else seen this?
I tested 3 scenarios:
Extend class defined in current file in included file. This works.
Extend class defined in included file in another included file. This works
Extend class defined in included file in current file. This fails!! The error message is 'Cannot instantiate non-existent class: class1'
file 'class1.php'-------------------------
<BODY>
<?php
include("class2.php");
include("class3.php");
//this works: included file extends class in current file
$Fred = new Class2;
//this works: included file extends class in included file
$Mary = new Class3;
// this fails!! current file extends class in included file
$Sam = new Class1;
exit;
class Class1 extends Class2
{
function Class1()
{
print("hello from class1<br>\n");
}
}
class Class1a
{
function Class1a()
{
print("Hello from class1a<br>");
}
}
?>
</BODY>
file 'class2.php'--------------------------
<?php
class Class2 extends Class1a
{
function Class2()
{
$this->Class1a();
print("Hello from class2<br>\n");
}
}
?>
file 'class3.php'-------------------------
<?php
class Class3 extends Class2
{
function Class3()
{
$this->Class2();
print("hello from class3<br>\n");
}
}
?>