在 web 应用中本来就没太大用途

解决方案 »

  1.   

    PHP5中新增的析构函数__destruct(),完全是为了维持类的“完整形象”。不是有很多人在攻击php的“类”不象“类”吗?在支持面向对象编程的语言中,由于程序员可以直接操控到硬件所以必须设有“析构函数”来释放程序中可能存在的不可被编译器预知额外资源。但php并不存在这样的需求,所以php5的析构函数只是一个摆设。php4没有析构函数,不一样工作的很好吗?当然析构函数的存在也是会给一些工具箱的开发带来好处的,比如PEAR。
    在PEAR工具箱中所有的类都是从基类PEAR或其派生类中继承的。PEAR基类管理着一张表,记录着所有的派生类的工作状态。派生类在实例化时注册到该表,销毁时从表中注销。这样就提供了一个特殊的通道,你可以通过这张表访问到当前每一个正在活动的对象,而不需要知道他们的名字。析构函数的一个另类用法就是用来完成默认动作:
    通常我们的类都设有一个主控函数(run、parse、start等)在完成一系列的设置后,最终调用他来得到结果。所以你完全可以把主控函数的工作交给析构函数
    $o = new Object;
    $o->set1();
    $o->set2();
    $o->parse();
    就变成
    $o = new Object;
    $o->set1();
    $o->set2();
      

  2.   

    在php中 当一个页面执行完成的时候 所有的变量都会 loss! 所以一般情况下你的析构函数 用处不大!用与不用 基本上没有什么区别的!但如果你在程序中划分了一些内存 等做缓冲区的,你可以考虑一下在适当的时候清除一下 或者update一下,这时候的 析构函数可能会显得比较方便 ^_^