PHP设置面向对象的类正确吗?

时间:2013-05-02 12:07:42

标签: php oop

我被告知必须创建一个包含所有类的config.php文件。

例如,假设我有3个班级。

第1课:众议院

第2课: myCar

第3课:道路

在config.php中,我称之为:

$house = new house();

$mycar = new myCar();

$road = new Road();

然后我在每个页面中包含该config.php文件,例如index.php。

但是现在,我想扩展课程。

我不能在该课程中包含config.php?或者在config.php中包含另一个'类文件。

这是设置类的错误方法吗?

如何在没有错误的情况下扩展课程。

每次都必须创建新对象吗?

示例:

不要包含config.php,不要这样做:

/**
 * Index.php
 **/
include("class/house.class.php");

$class = new House();

echo $class->echoMe("hey");

在每个文件中我都会通过创建新对象来做同样的事情,那么我可以在需要时扩展一些特定的类吗?

2 个答案:

答案 0 :(得分:2)

function autoload($class) {
    if (is_file($file = 'www/content/includes/class/'.$class.'.php')) {
        require_once($file);
    }
}

spl_autoload_register('autoload');

在config.php文件中包含以下代码。确保在每个要加载类的文件中包含配置文件。

确保该文件与您的呼叫类名称相同。例如

$house = new House();

将要求类文件名为House.php

使用

启动每个类文件
<?
    class House {

        function something() {

        }

    }

答案 1 :(得分:1)

你可以使用spl_autoload_register()基本上你创建了一个函数,每次调用PHP之前没有遇到的类时都会调用它。

/**
* config.php
*/
function classAutoLoad($class) {
    if (file_exists("class/$class.class.php"))
        include("class/$class.class.php");
}

spl_autoload_register('classAutoload');

/**
* someFile.php
*/
reauire_once('config.php');
$house = new House();