为了账号安全,请及时绑定邮箱和手机立即绑定

PHP如何实现$this->[类库名称]->[类库方法]。

PHP如何实现$this->[类库名称]->[类库方法]。

PHP
白衣染霜花 2019-03-18 18:06:02
使用过CI框架,发现在控制器中加载模型很方便,直接使用$this->my_model_name->my_method(),即$this->[类库名称]->[类库方法];我在自己搭建的一个框架中也想达到同样效果,但是失败,只能将new出来的类库存入属性中,再使用$this->model->my_method(),即$this->[类属性名]->[类库方法]。 考虑过使用可变变量,将传入的类库名存入属性中,然后将new出来的对象存入该属性的可变变量中,这样$this->类库名 就相当于$this->属性名了,都能得到new出来的对象,但是报错: class A { public $libaray; public function load($className) { //将类库名存入属性 $this->libaray = $className; //获取类库的文件名/命名空间 $class = $className.'.php'; //将new出来的类库存入$libaray $this->$libaray = new $class; } } 但是这样会报错,提示未定义变量$libaray,也就是在利用可变变量这里出错。是我对可变变量理解有问题吧?官方文档中说明:http://php.net/manual/zh/lang... 注意,在 PHP 的函数和类的方法中,超全局变量不能用作可变变量。$this 变量也是一个特殊变量,不能被动态引用。 这说明$this不能使用动态变量?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 549 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信