【问题标题】:Deleting entire PHP Class删除整个 PHP 类
【发布时间】:2012-07-17 02:28:27
【问题描述】:
class foo{
    ....
}

假设该类存在于我的代码中,然后我不再需要该类并希望将其删除(以便以后可以将其替换为新类)

是否可以从运行时删除整个类?

【问题讨论】:

  • 你可以重新定义类:stackoverflow.com/questions/137006/…
  • 什么意思?是要替换 PHP 文件中的编码还是要重新初始化类变量?
  • @Nish 我认为他的意思是:当一个类被定义时,它会在内存中占用一些空间(只是类本身,而不是它的实例)所以当他完成这个类时,他想要释放类定义占用的内存空间。
  • Shaheer 已经足够接近了。我想将它从运行时中删除,以便使用同名的新类重新定义它。
  • Shaheer:现在 RAM 很便宜。

标签: php oop


【解决方案1】:

不,您不能在运行时删除或大幅修改 PHP 类(或函数)。

【讨论】:

    【解决方案2】:

    使用 unset($classVariableName) 删除实例,它会释放内存。

    如果类的定义在运行时不应该存在,则需要将类添加到单独的文件中,并且仅在需要时才包含该文件。这样您就可以拥有两个具有相同类名的不同类定义。但是有两个同名的不同定义并不是一个好方法。

    【讨论】:

    • 我需要能够替换正在运行的课程。
    【解决方案3】:

    你可以使用 unset() 来删除一个对象,但是类本身不能被删除。老实说,在运行时修改这样的代码听起来很笨拙和令人困惑——没有更好的选择吗?

    【讨论】:

    • 是的,无法卸载类定义本身。只能删除实例。
    • 除了读取文件、随机化类名然后对代码进行 eval() 之外,没有太多其他选项。 Kludgy——给你。这是我设置的架构的一部分。
    猜你喜欢
    • 2013-06-14
    • 2023-03-30
    • 2011-02-09
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    相关资源
    最近更新 更多