OOP PHP需要类,扩展

时间:2015-12-09 15:19:15

标签: php oop

目前我正在尝试理解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调用一个继承的类?

2 个答案:

答案 0 :(得分:2)

每个文件只应该有一个类。只要每个类都在自己的文件中,您的自动加载将为您处理所有内容,命名方式相同......

将所有Customer类代码放在Customer.class.php

答案 1 :(得分:2)

每个类都应该写在自己的文件中,正是因为这个自动加载。没有理由class Customer必须与class User位于同一个文件中,只需将其放在自己的文件中,自动加载器就能正确处理。

否则,您将不得不采用其他一些命名方案并编写一个更智能的自动加载器,它可以在具有不同名称的文件中查找类。 (不要这样做,不是真的。)