Php 有没有办法限制一个类只创建两个对象

Php 有没有办法限制一个类只创建两个对象,php,oop,design-patterns,Php,Oop,Design Patterns,我知道单例对象设计模式。 如何允许一个类只创建两个不同的对象,那么它应该抛出一个错误。可以执行以下操作: 为类创建静态变量 将其初始化为0 在构造函数内部检查静态变量的值。如果超过2,则抛出一个错误。否则继续 @Ashwini答案的代码版本: <?php class Limited { private static $amount = 0; public function __construct() { self::$amount++;

我知道单例对象设计模式。
如何允许一个类只创建两个不同的对象,那么它应该抛出一个错误。

可以执行以下操作:

  • 为类创建静态变量
  • 将其初始化为0
  • 在构造函数内部检查静态变量的值。如果超过2,则抛出一个错误。否则继续

  • @Ashwini答案的代码版本:

    <?php
    
    class Limited {
        private static $amount = 0;
    
        public function __construct()
        {
                self::$amount++;
                if(self::$amount > 2) {
                        throw new Exception('Limit reached');
                }
    
                echo 'I am number ' . self::$amount . "\n";
        }
    }
    
    $obj1 = new Limited();
    $obj2 = new Limited();
    
    try {
        $obj3 = new Limited();
    } catch(Exception $e) {
        $obj3 = null;
        unset($obj3);
    }
    

    与singleton相同,但将实例存储在单独的变量或数组中。我仍然没有看到任何逻辑用例:)您正在查看模式。这样,单态就成为了多态模式的特例。