CI3中Controller.php控制器的self::$instance=&$this调用及Model.php中的__get($key)的测试

CI3中Controller.php控制器的self::KaTeX parse error: Expected 'EOF', got '&' at position 10: instance=&̲this调用及Model.php中的__get($key)的测试

Controller.php文件

<?php
class CI_Controller{
	private static $instance;
	public function __construct(){
		self::$instance=&$this;
		foreach(is_loaded() as $var=>$class)
		{
			$this->$var=&load_class($class);
			$obj=$this->$var;
			printf("var: |%s|,class: |%s|,obj: |%s|<br/>",$var,$class,var_export($obj,true));
		}
	}
	
	public static function &get_instance()
	{
		return self::$instance;
	}
	public function get()
	{
		require_once 'model.php';
		$model=new CI_Model();
		$str=$model->invoteClass();
		return $str;
	}
}

Common.php

<?php
if(!function_exists('load_class'))
{
	function &load_class($class)
	{
		static $_classes=array();
		if(isset($_classes[$class]))
		{
			return $_classes[$class];
		}
		if(file_exists($class.'.php'))
		{
			require($class.'.php');
		}
		
		is_loaded($class);
		$_classes[$class]=new $class();
		return $_classes[$class];
	}
}

if(!function_exists('is_loaded'))
{
	function &is_loaded($class='')
	{
		static $_is_loaded=array();
		
		if($class!='')
		{
			$_is_loaded[strtolower($class)]=$class;
		}
		return $_is_loaded;
	}
}

function &get_instance()
{
	return CI_Controller::get_instance();
}

Model.php

<?php
class CI_Model
{
	public function __construct()
	{}
	
	public function __get($key)
	{
		$CI=&get_instance();
		printf('显示加载的是那个方法:|%s|<br/>',__METHOD__);
		return $CI->$key;
	}
	
	public function invoteClass()
	{
		$obj=$this->appa;
		echo '显示方法:'.__METHOD__."<br/>";
		printf("调用的对象是:|%s|<br/>",var_export($obj,true));
		printf("obj->getApp: |%s|<br/>",$obj->getApp());
		/*
		$obj=$this->appb;
		echo '显示方法:'.__METHOD__."<br/>";
		printf("调用的对象是:|%s|<br/>",var_export($obj,true));
		printf("obj->getApp: |%s|<br/>",$obj->getApp());
		*/
	}
}
?>

appa.php

<?php
class appA{
	public function __construct(){}
	public function getApp()
	{
		return 'this is appa';
	}
}

index.php

<?php
include 'Common.php';
include 'Controller.php';
load_class('appa');
$controller=new CI_Controller();
echo '显示文件路径:'.__FILE__."<br />";
$controller->get();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值