【发布时间】:2011-01-26 22:37:16
【问题描述】:
如果我有:
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 没有直接内置的东西来实现这一点(感谢大家的回答)。不如我写下我的目标,也许你或你认识的人可以提出实现这个目标的方法?
我想要一门主课。然后我有一组像分组函数库一样运行的子类。当需要达到目的时,这些子类中的每一个都是__autoloaded。比如我有一个文件上传&处理函数的子类,一个数据库交互函数的子类,一个xml处理函数的子类,等等。
我想这样使用:调用每个脚本顶部的主类$main = new main();。然后,稍后,需要来自子类(尚未加载)的图像处理方法,所以我调用
$main->methodFromChildClass(); 这将导致该子类被自动加载并使用该方法。
我希望通过这种方式来优化加载哪些文件,并使事情井井有条。我对 oop 还很陌生。现在有没有办法实现这种类型的组织?
【问题讨论】: