Если у меня есть:
class main {
//hello
}
class child1 {
function love($v) {
}
}
class child1 {
function hate($v) {
}
}
function __autoload($file) {
include_once($file . '.php');
}
Есть ли способ, которым я могу настроить это, чтобы я мог сделать
$main = new main();
$main->hate();
$main->love();
и еще
- сохранить их как отдельные классы, а
использовать автозагрузчик для дочерних классов?
Я думаю , даже если дочерние классы extend
основной класс, что я не могу получить доступ к дочерним методам из родительского класса. Это верно? Если так, есть ли что-то вроде обратного extends
, который вводит свойства / методы дочернего класса в основной класс?
<ч />
Обновление 1
Хорошо, похоже, что в php нет ничего встроенного, чтобы добиться этого (спасибо всем за ответы). Как насчет того, чтобы я записал свою цель, и, может быть, вы или кто-то из ваших знакомых может предложить способ добиться этого?
Я хотел бы иметь один основной класс. Затем у меня есть набор подклассов, которые работают как библиотеки сгруппированных функций. Каждый из этих подклассов __autoload
редактируется, когда это необходимо для достижения цели. Например, у меня есть подкласс функций загрузки и обработки файлов, подкласс функций взаимодействия с базой данных, подкласс функций обработки xml и так далее.
Я хочу использовать это так: вызывать основной класс в начале каждого скрипта $main = new main();
. Затем, позже, необходим метод обработки изображений из дочернего класса (который не был загружен), поэтому я вызываю
$main->methodFromChildClass();
, что приведет к автоматической загрузке этого дочернего класса и используемого метода.
Я надеюсь таким образом оптимизировать, какие файлы загружены, и поддерживать порядок в порядке. Я довольно новичок в работе. Есть ли способ достичь такого типа организации сейчас?