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

时间:2015-05-28 06:54:28

标签: php oop design-patterns

我了解单身对象设计模式。 如何允许类只创建2个不同的对象,然后它应该抛出错误。

2 个答案:

答案 0 :(得分:2)

可以做到以下几点:

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

答案 1 :(得分:2)

@ Ashwini答案的代码版本:

   // Write the value of the column FirstName (which is now in the array $row)
  echo "<table width='100%' border='0' cellpadding='10' cellspacing='0'><tr style='background-color:#f04d44; color:#ffffff;'>";
  echo "<td style='border-right:1px solid #ff9a88;'><strong>Klant</strong></td><td style='border-right:1px solid #ff9a88;'><strong>Datum</strong></td><td style='border-right:1px solid #ff9a88;'><strong>Eventviewer Nagekeken</strong></td><td style='border-right:1px solid #ff9a88;'><strong>Eventviewer Opmerkingen</strong></td><td style='border-right:1px solid #ff9a88;'><strong>Services Nagekeken</strong></td><td style='border-right:1px solid #ff9a88;'><strong>Services Opmerkingen</strong></td><td style='border-right:1px solid #ff9a88;'><strong>Backup Nagekeken</strong></td><td style='border-right:1px solid #ff9a88;'><strong>Backup Opmerkingen</strong></td><td><strong>Check Gedaan Door</strong></td>";
  echo "</tr>";
  // Loop the recordset $rs
  // Each row will be made into an array ($row) using mysql_fetch_array
  while($row = mysql_fetch_array($rs)) {
  echo "<tr style='background-color:#ffffff;'>";
  echo "<td style='border-right:1px solid #cccccc; border-bottom:1px solid #cccccc;'>"; 
  echo $row['klant'];
  echo "</td>";
  echo "<td style='border-right:1px solid #cccccc; border-bottom:1px solid #cccccc;'>";
  echo $row['datum'];
  echo "</td>";
  echo "<td style='border-right:1px solid #cccccc; border-bottom:1px solid #cccccc;'>";
  echo $row['eventviewer_nagekeken'];
  echo "</td>";
  echo "<td style='border-right:1px solid #cccccc; border-bottom:1px solid #cccccc;'>";
  echo $row['eventviewer_opmerkingen'];
  echo "</td>";
  echo "<td style='border-right:1px solid #cccccc; border-bottom:1px solid #cccccc;'>";
  echo $row['services_nagekeken'];
  echo "</td>";
  echo "<td style='border-right:1px solid #cccccc; border-bottom:1px solid #cccccc;'>";
  echo $row['services_opmerkingen'];
  echo "</td>";
  echo "<td style='border-right:1px solid #cccccc; border-bottom:1px solid #cccccc;'>";
  echo $row['backup_nagekeken'];
  echo "</td>";
  echo "<td style='border-right:1px solid #cccccc; border-bottom:1px solid #cccccc;'>";
  echo $row['backup_opmerkingen'];
  echo "</td>";
  echo "<td style='border-bottom:1px solid #cccccc;'>";
  echo $row['check_door'];
  echo "</td>";
  }
  echo "</tr></table>";

// Close the database connection
mysql_close();

您应该将每个新实例包装在try-catch中,以便在失败时删除该对象。