我有一个工作正常的class MyClass
。当我使用 $obj = new MyClass()
就像一个魅力。问题是,如果我扩展这个class MyClass extends MyExtends
,它会给我一个错误:找不到类 MyClass。
因为魔鬼在细节中,这里有一些:
1) MyClass 实例是在同一文件(称为 MyClass.php)中创建的。
$obj = new MyClass();
class MyClass extends MyExtends{
}
2) 使用 ajax 调用obj
的创建
if($_POST['myAjaxFlag']){
$obj = new MyClass();
}
3)ajax调用返回为成功,但是如果我打印返回的数据,则会收到该类未找到错误php消息。
这是因为您在初始化后声明了类"MyClass"
obj = new MyClass();
class MyClass extends MyExtends{
}
纠正:
class MyClass extends MyExtends{
}
obj = new MyClass();
应该工作然后;)
顺序很重要:
<?php
class Base
{
protected function sayHello()
{
echo("Base hello'n");
}
}
class Child extends Base
{
public function sayHello()
{
parent::sayHello();
echo("Child hello'n");
}
}
$obj = new Child();
$obj->sayHello();
?>
基地问候
孩子你好
您需要先定义类,然后才能使用它。 所以"new"应该在类MyClass定义之后。
此外,在扩展之前需要定义MyExtends...可以事先在同一文件中,也可以通过"require"语句。