我有一个class MyClass
工作正常。当我使用创建实例时
$obj = new MyClass()
就像一个魅力。问题是,如果我扩展这个class MyClass extends MyExtends
,它会给我一个错误: class MyClass not found 。
因为魔鬼在细节中,所以这里有一些:
1)MyClass实例在同一个文件中创建(名为MyClass.php)。
$obj = new MyClass();
class MyClass extends MyExtends{
}
2)使用ajax
调用obj
的创建
if($_POST['myAjaxFlag']){
$obj = new MyClass();
}
3)ajax调用返回成功,但如果我打印返回的数据,我得到该类未找到错误的php消息。
答案 0 :(得分:3)
这是因为您在初始化后声明了“MyClass”类
obj = new MyClass();
class MyClass extends MyExtends{
}
修正:
class MyClass extends MyExtends{
}
obj = new MyClass();
应该工作;)
答案 1 :(得分:1)
订单事宜:
<?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();
?>
Base hello
孩子你好
答案 2 :(得分:0)
您需要先定义该类,然后才能使用它。所以“新”应该在MyClass类定义之后出现。
还需要先定义MyExtends,然后才能扩展它...要么预先在同一个文件中,要么通过“require”语句。