PHP未分配的类实例?

时间:2011-08-12 14:26:09

标签: php class

我注意到PHP似乎允许以下内容:

<?php

class StandAlone {
    public function __construct() {
        echo "I am constructed!";
    }

    public function __destruct() {
        echo "I am destructed!";
    }
}

new StandAlone;

没有任何大惊小怪。

这是一个错误,因为PHP 应该引发错误吗?或者这是允许的,并且类实例只是存在于某个地方的内存中,无法直接访问该特定实例?

2 个答案:

答案 0 :(得分:2)

类实例不需要存储在变量中。例如,您可以将其作为参数传递给接受StandAlone对象作为其参数的函数。它存在于内存中,表示正在使用的脚本执行期间的时间。如果从未分配,则构造,销毁和释放。

call_a_function(new StandAlone);

我想不出任何实际情况,你可以在没有指定它的情况下调用new Object,或者通过定义一个函数来做一些工作而不是一个类来传递给一个不能更好地服务的函数。

答案 1 :(得分:0)