Php 如何定义一个只有在没有参数传递给构造函数时才能实例化的类?

Php 如何定义一个只有在没有参数传递给构造函数时才能实例化的类?,php,constructor,parameter-passing,instantiation,Php,Constructor,Parameter Passing,Instantiation,如何定义一个类,该类只能在没有参数的情况下实例化,并且在将任何参数传递给构造函数时禁止实例化 我的目标是强制执行一组被认为是“简单”的类,并用作模板。作为其中的一部分,我不希望在实例化期间向构造函数传递任何内容 当任何东西通过构造函数传递时,我希望它失败(运行时错误、致命错误、静态解释器错误检查等) 如果传递了任何内容,只需引发异常: class Foo { public function __construct(...$args) { if (count($args)

如何定义一个类,该类只能在没有参数的情况下实例化,并且在将任何参数传递给构造函数时禁止实例化

我的目标是强制执行一组被认为是“简单”的类,并用作模板。作为其中的一部分,我不希望在实例化期间向构造函数传递任何内容

当任何东西通过构造函数传递时,我希望它失败(运行时错误、致命错误、静态解释器错误检查等)


如果传递了任何内容,只需引发异常:

class Foo {
    public function __construct(...$args) {
        if (count($args) > 0) {
            throw new Exception('No arguments!');
        }
    }
}

(关于<代码>…<代码> SPLAT运算符-PHP>=5.6,请注意,如果您必须支持旧版本(我希望您不要))<代码> FrimeNuthAgScript()/代码>这里稍微好一点,因为我们不关心它们是什么,只有有一些。我曾想过在回答中使用它,但这与另一个答案没有什么区别。
class Foo {
    public function __construct(...$args) {
        if (count($args) > 0) {
            throw new Exception('No arguments!');
        }
    }
}
class Test {

    public function __construct() {
        if (func_get_args()) {
            throw new Exception('No parameters are allowed.');  
        }
    }

}

try {
    $p = new Test('test');
} catch (Exception $e) {
    echo $e->getMessage();  
}