использование требуют внутри класса - PullRequest
0 голосов
/ 07 февраля 2010

Я хочу создать «класс загрузчика», для которого потребуются выбранные файлы.

так что я просто могу позвонить, например. loader :: load ('systemLibraries,' applicationLibraries ').

так что внутри этого метода load () я буду использовать require. но я пробовал это, и кажется, что необходимые файлы не могут быть использованы за пределами класса.

как я могу сделать это глобально доступным?

Ответы [ 2 ]

2 голосов
/ 07 февраля 2010

Это должно работать нормально:

class Loader{

    function load($class_name)
    {
         require($class_name ".php");
    }
}

Loader::load("MyClass");
$class = new MyClass;

Учитывая, что MyClass находится в "MyClass.php"

Это, с другой стороны, не будет работать

class Loader{

    function load($class_name)
    {
         require($class_name ".php");
         $class = new $class_name;
    }
}

Loader::load("MyClass");
$class->doSomething();

Если include.php выглядит так

$var = "Hi";

Вы не можете сделать это:

Loader::load("include");
echo $var;

Поскольку существуют проблемы с областью действия.

Вам нужно будет предоставить нам больше информации о том, что вы пытаетесь получить.

1 голос
/ 07 февраля 2010

Да, как указал Чача, убедитесь, что вы создаете экземпляр классов вне вашего класса загрузчика. А так как вы использовали термин системные библиотеки , которые обычно всегда нужны системе, вы можете использовать магическую функцию автозагрузки __ , чтобы автоматически включить их все для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...