gpt4 book ai didi

php - 什么时候在 PHP5 类中调用私有(private)构造函数?

转载 作者:行者123 更新时间:2023-12-03 23:03:31 24 4
gpt4 key购买 nike

假设我正在编写一个 PHP (>= 5.0) 类,它应该是一个单例。我读过的所有文档都说要将类构造函数设为私有(private),因此无法直接实例化该类。

所以如果我有这样的东西:

class SillyDB
{
private function __construct()
{

}

public static function getConnection()
{

}
}

是否有任何情况下会调用 __construct() 而不是我在做

new SillyDB() 

在类本身内部调用?

为什么我完全可以从内部实例化 SillyDB?

最佳答案

私有(private)构造函数确保您不能在自身之外实例化此类。
所以调用

$obj = new SillyDB();

会导致错误。

这种技术通常在创建单例类时使用。

手册中的这条石头旧评论描述得很好:http://www.php.net/manual/de/language.oop5.decon.php#80314

您在类中有一个静态方法,该方法管理可以通过该方法检索的类的单个实例。

关于php - 什么时候在 PHP5 类中调用私有(private)构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19519342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com