我想询问有关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()中的回调参数允许调用方法
我正在使用oauth方法以允许用户使用Twitter和Facebook登录我的网站。我还计划添加Yahoo!和谷歌以及StackOverflow一样。一旦用户成功登录Twitter,他们就可以选择退出。我想在选择“注销”按钮或链接时转到用户已注销我的站点和TWITTER的位置。在用户访问我的网站而不是Twitter的情况下,我也需要它来注销Twitter。我该怎么做?演示和示例位于:develop.f12media.com用户单击页面顶部的“登录”以使用他们的Twitter帐户登录。 最佳答案 将用户重定向到http://twitt
我正在阅读一些关于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