在项目中,难免会遇到这种情况,多个子类集成同一个父类时,在父类的构造函数中无可避免的会些很多代码,加载很多东西,这样写毫无任何质疑。
但如果在需求中需要一个子类实例化另一个子类,那么,父类的构造函数就会重复加载,如果在一个子类的一段代码中,需要实例化多个子类,这样父类构造函数重复加载就麻烦了。怎么避免呢,我第一反应就是用global来决绝问题。
在父类文档中:
$GLOBALS['isLoadConstruct'] = false; class A{ function __construct(){ global $isLoadConstruct; if ($isLoadConstruct === false) { //具体内容 } } }
这样就能解决问题;