目前我正在尝试理解OOP如何应用于PHP,并且在进行继承时我无法调用我的类。
我正在使用以下PHP代码:
require_once("init.php");
$table = new Table();
$table->draw();
$customer1 = new Customer();
由于表类只是一个普通类(未继承),因此它将正确加载。
init.php具有以下PHP代码:
function __autoload($class_name) {
require_once('classes/'.$class_name . '.class.php');
}
因为Customer类本身就是User类,所以Customer类的代码在User类中,但是__autoload函数现在正试图调用customer.class.php。
我的客户类看起来像这样:
class User
{
private $_username;
public function __construct($name)
{
$this->_username = $name;
}
public function getUsername()
{
return $this->_username;
}
}
class Customer extends User
{
public function __construct()
{
//some code here
}
}
任何人都会解释我,我应该如何用PHP调用一个继承的类?
答案 0 :(得分:2)
每个文件只应该有一个类。只要每个类都在自己的文件中,您的自动加载将为您处理所有内容,命名方式相同......
将所有Customer类代码放在Customer.class.php
中答案 1 :(得分:2)
每个类都应该写在自己的文件中,正是因为这个自动加载。没有理由class Customer
必须与class User
位于同一个文件中,只需将其放在自己的文件中,自动加载器就能正确处理。
否则,您将不得不采用其他一些命名方案并编写一个更智能的自动加载器,它可以在具有不同名称的文件中查找类。 (不要这样做,不是真的。)