我有课并且这样做:function__destruct(){$this->load_file('epicEndingfile.php');}我得到一个错误:警告:require(...)[function.require]:无法打开流:没有这样的文件或目录当我对__construct做同样的事情时,它就起作用了。这是为什么?编辑:我实际上不需要文件,但我使用方法来做到这一点。 最佳答案 require使用您的CD(当前目录),而不是您放置文件的目录。它可能会在您的应用程序上下文中发生变化(在构造和破坏之间),如果您想根据当前文件提供
我找到了这个http://bugs.php.net/bug.php?id=30210,根据PHP团队的说法,这不是错误。我不明白的是为什么要在析构函数之前重置目录。如果您能解释与其他语言相比的行为,我们将不胜感激。 最佳答案 whichaccordingtothePHPteamisn'tabug您链接到的错误报告表明他们最终改变了主意。ThishasbeenfixedinnewerversionsofPHP.Worksin5.2.6and5.3.5atleast. 关于PHP析构函数行为
我正在使用PHP5.4.12我有两个类(class)和使用这段代码,MySession的析构函数永远不会被调用。但是有了这段代码,“MySession”析构函数就可以调用了我已经测试了session_set_save_handler($handler,true/false)。我需要调用MySession的析构函数,因为我对session_write_close();有疑问我必须显式调用它,否则session永远不会写入服务器。有什么解决方法吗?我已将代码简化到它们的根,但__destruct方法没有在应该调用的时候调用。 最佳答案
在很多时候,当写了初始化,动态开辟的,需要写销毁函数,写了销毁函数之后,但是却忘记了调用这些函数,忘记调用初始化函数还好,编译器会报错,但是如果是忘记调用销毁函数,那么编译器是不会报错,但是不能说这个程序就没错哦了,反而有很大的问题,存在内存泄漏的问题,如和解决这样问题?这也是本文重点。C++增加了类的6个默认成员函数,本文先分享构造函数和析构函数。构造函数–主要完成初始化工作,析构函数–主要完成清理工作文章目录一、前言二、构造函数三、析构函数一、前言在很多时候,当写了初始化,动态开辟的,需要写销毁函数,写了销毁函数之后,但是却忘记了调用这些函数,忘记调用初始化函数还好,编译器会报错,但是如果
我在我正在使用的代码中发现了以下模式:在析构函数的某些类中,我发现私有(private)变量被清空,例如:publicfunction__destruct(){foreach($this->observersas$observer){$observer=null;}$this->db_build=null;}当PHP有GC时,这样做有什么意义吗?它会以某种方式提高脚本的性能吗? 最佳答案 有时只是为了清洁模因。但是在您的示例中,$observer和->$db_build都引用了子对象。所以这里的目的是在当前对象的销毁完成之前销毁它们
如果实现了一个通过构造它并调用各种方法来为页面构建HTML的类,那么在析构函数中定义该类的显示/回显部分是否合适?与其使用显式的Class:displayHTML();方法,不如在析构函数中使用echo$this->html并在您准备好显示时调用unset($object);哪个会显示它?我知道析构函数可能不是最好的地方,但想知道其他人对此有何看法? 最佳答案 这对我来说听起来不可行。未设置不等于echo。这是根本不同的事情。另外,请记住,对象不仅在unset时被销毁,而且在它们不再被引用和/或脚本终止时也会被销毁。这很可能会产生不
我看到一门课,立刻引起我注意的是:publicfunction__destruct(){unset($this);}我的第一个想法是这纯粹是愚蠢,事实上它看起来很愚蠢,我认为要么真的有充分的理由这样做,要么作者只是无知有什么想法吗?有什么理由这样做吗? 最佳答案 简答:否长答案:不不不不不不不不不不不 关于php-在析构函数中取消设置($this)有什么意义吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow
类似于在Codeigniter中构建类构造函数,它在类中执行其他函数之前执行一段代码:有没有一种方法可以构建一个“析构函数”,在您调用的函数完成后正确处理一段代码?这段代码似乎没有在我的应用程序中处理“页脚”:function__destruct(){$this->load->view('footer');} 最佳答案 函数__destruct(),在对象被销毁之前调用。它实际上并不特定于CodeIgniter。还要记住,如果您在脚本的最后让对象保持事件状态,那么当PHP关闭时它会被破坏,可能会出现各种问题。因此,如果可能的话,在脚
我现在正在阅读“PHP5forprofessionals”一书,这是2006年的出版物。在一个例子中,他们在析构函数中抛出异常,很长一段时间我都不明白为什么我在析构函数中的最后一个异常不起作用,然后我搜索了一下,发现在PHP=>5.3中它是不可用在析构函数中抛出异常。那么如果在析构函数中我更新我的数据库ifvariable$needsUpdate=true;并关闭我的数据库连接,那么怎么做更好,所以我想在无法更新数据库时抛出异常。例如,我在我的数据库类中抛出异常,但在主文件中捕获它们,如下所示:它的类小部件:classWidget{private$_id;private$_name;p
publicclassA{doublewage;A(doublewage){this.wage=wage;}}//在这段代码中,我应该定义构造函数和析构函数。定义析构函数的代码是什么? 最佳答案 在Java中,没有析构函数,但您可以使用方法Object#finalize()作为解决方法。TheJavaprogramminglanguagedoesnotguaranteewhichthreadwillinvokethefinalizemethodforanygivenobject.Itisguaranteed,however,that