脚本宝典收集整理的这篇文章主要介绍了在PHP中的扩展类中使用父变量,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<?PHP class Main { public $VARs = array(); } $main = new Main; $main->vars['key'] = 'value'; class Extended extends Main { } $other = new Extended; var_dump($other->vars); ?>
我能做谁?
无效例如:
<?PHP class Extended extends Main { function __construct ($main) { foreach ($main as $k => $v) { $this->$k = $v; } } } ?>
我需要一些更透明,更有效的解决方案:)
下面的回答是愚蠢答案的历史.
我想的正确方法.
<?PHP class Config { PRotected $_vars = array(); protected static $_instance; private function __construct() {} public static function getInstance() { if (!isset(self::$_instance)) { self::$_instance = new self(); } return self::$_instance; } public function &__get($name) { return $this->_vars[$name]; } public function __set ($name,$value) { $this->_vars[$name] = $value; } } $config = Config::getInstance(); $config->db = array('localhost','root',''); $config->templates = array( 'main' => 'main','news' => 'news_list' ); class DB { public $db; public function __construct($db) { $this->db = $db; } public function connect() { MysqL_connect($this->db[0],$this->db[1],$this->db[2]); } } $config = Config::getInstance(); $db = new DB($config->db); $db->connect(); class Templates { public $templates; public function __construct($templates) { $this->templates = $templates; } public function load ($where) { return $this->templates[$where]; } } $config = Config::getInstance(); $templates = new Templates($config->templates); echo $templates->load('main') . "\n";
以上是脚本宝典为你收集整理的在PHP中的扩展类中使用父变量全部内容,希望文章能够帮你解决在PHP中的扩展类中使用父变量所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。