我在某处读书
构造函数的参数可以是任何类型,但其所属的类除外。
所以
$obj = new class_name(new class_name());
PHP允许这样做吗?
好找出来,为什么我们不只是运行代码并一步一步地进行会发生什么,我们应该吗?
因此,如果类将构造函数作为参数,则这意味着它必须看起来像这样:
class A {
public function __construct($parameter){
}
}
现在我们创建它的一个实例:
$o = new A(new A);
但是该参数还需要一个实例:
$o = new A(new A(new A));
但是该参数还需要一个实例:
$o = new A(new A(new A(new A)));
但是该参数还需要一个实例:
$o = new A(new A(new A(new A(new A))));
但是该参数还需要一个实例:
$o = new A(new A(new A(new A(new A(new A)))));
但是该参数还需要一个实例:
$o = new A(new A(new A(new A(new A(new A(new A))))));
...等一下,我迷路了。
抢救来了“默认参数值”!正如VolkerK在评论中指出的那样,这并非不可能,您只需要确保以某种方式结束连锁。这就是默认值,例如
class A {
public function __construct($parameter = NULL){
}
}
因此,使用默认值时,链将结束,当您不将另一个实例传递给构造函数时,它将采用默认值,该默认值将在NULL
此处。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句