我想询问有关PHP克隆/复制对象到$this变量的问题。目前我是MVC的新手,我想做一些类似CodeIgniter的事情。我想直接访问变量。在我的__construct()中,我总是将内部的全局变量传递给新的Controller(类),例如。function__construct($mvc){$this->mvc=$mvc;}在$mvc里面有配置对象,vars对象。例如,目前functionindex(){$this->mvc->config['title'];$this->mvc->vars['name'];}**我要的是更直接的**functionindex(){$this->co
在Controller中,您可以使用此方法加载View,但我想知道这里的幕后发生了什么。我是PHP和框架的新手,但我已经学习了OOP的基础知识。当调用$this->view()时,将使用当前类或父类中的方法。但是$this->load->view()是什么意思?什么是中间load?它是函数还是属性?它位于哪里?它怎么可能包含view()?感谢您的解释。 最佳答案 有问题的代码正在访问名为load的成员变量,该变量有一个名为view的方法。CodeIgniter按照它自己的惯例,将其模型和库作为CI“super对象”中的成员变量提供,
基本上,我要实现的目标是使对象从方法内部引用同一类的另一个对象。如果以下方法可行,那就太完美了:$this=newself;但是不能在php中重新分配$this。我当然知道,我可以从方法返回另一个对象并使用它,所以请不要建议。问题是:如何使$this成为同一类的另一个对象的克隆?或者更具体地说,我想要一个对象恢复到之前保存的特定状态。编辑:一些可能有用的示例。假设您有一个Url对象,它接受Controller、操作和更多东西。您将使用相同的Controller和操作获取大量链接,但其他属性会有所不同。我使用公共(public)参数实例化对象,为它调用一个方法来保存它在输出链接后恢复到的
我想知道为什么会这样:classFoo{publicfunctiondoSomethingFunny($subject){preg_replace_callback("#pattern#",array($this,'doX'),$subject);}privatefunctiondoX(){echo'whydoesthiswork?';}}为什么回调还在$this的上下文中?我希望它只允许公共(public)方法。我缺少有关回调工作原理的一些基本知识。 最佳答案 preg_replace_callback()中的回调参数允许调用方法
我正在阅读一些关于zend框架的教程和文档,在我遇到$this之前,大多数事情都是有意义的/application/layout/scripts/layout.phtml中的变量,有人提到$this是在引导过程中创建的View对象的一个实例。据我所知,您不能使用$this作为变量名因为$this是php的保留关键字,用于在类上下文中引用相同的对象。任何将其用作变量的尝试都将导致fatalerror并显示以下错误消息Fatalerror:Cannotre-assign$this并根据作者的陈述Thereisavariable,$this,availablewhichisaninsta
我收到此fatalerror消息:不在对象上下文中时使用$this。此类在CodeIgniter中设置为一个库。这是我的课:classMy_class{function__construct(){$this->app=base_url('application').'/cache/';if($this->expire_after==''){$this->expire_after=300;}}staticfunctionstore($key,$value){$key=sha1($key);$value=serialize($value);file_put_contents($this->
我正在编写简单的模板引擎和堆栈问题:$this即使在取消设置后仍落入eval范围。classfoo{publicfunctionmethod(){$code='var_dump(isset($this));';unset($this);var_dump(isset($this));//produce:booleanfalseeval($code);//produce:booleantrue}}$foo=newfoo;$foo->method();如何在不修改$code值的情况下避免这种情况? 最佳答案 我建议创建unboundclo
这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:PHPmethodchainingbenefits?PHPOOP:MethodChaining谁能告诉我为什么要使用返回$这个;在php类方法中,我在一些方法类中看到了这一点,例如:publicfunctionregisterPrefix($prefix,$path){if(isset($this->prefixes[$prefix])){$path=array_merge($this->prefixes[$prefix],(array)$path);}$this->prefixes[$prefix]=(ar
我有一个TestController的View文件并且在上面我添加了评论表单(我的页面所在的页面的url是www.example.com/test/view/slug)现在评论表单发布在urlwww.example.com/comments/addAction评论添加成功后我已经写了(在评论/添加方法)$this->redirect($this->referer());我期待的是它应该重定向到www.example.com/test/view/slug。它在我本地主机上的那个url上重定向,但是当我部署我的应用程序时,它是重定向而不是重定向属性,它是在urlwww.example.co
差不多就这些了。大多数OO编程语言中的作用域可以很好地解析符号,而无需显式引用当前实例(即PHP中的“$this”)。为什么PHP要求我在每次调用同一类中的成员函数之前使用$this? 最佳答案 解析函数调用的范围。考虑:$this->strstr(...只是strstr(...后者将调用PHP内置的strstr()函数,这不是我们在这里要做的。这是将OOP功能添加到高级过程/脚本语言的结果。 关于php-为什么PHP需要显式引用"$this"才能调用成员函数?,我们在StackOver