Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czy jest możliwość zablokowania utworzenia obiektu w konstruktorze?
byq_pl
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 19.02.2004
Skąd: z piekla

Ostrzeżenie: (0%)
-----


Witam,
czy jest możliwość aby konstruktor w jakiś sposób pozwalał lub blokował tworzenie danego obiektu? W żaden sposób nie mogę tego ugryźć a potrzebuję danej funkcjonalności.
Pozdrawiam

// edycja
Napiszę na przykładzie o co mi chodzi.
  1. $z = new K();
  2. $z == false; // K() zwraca false;
  3. // lub
  4. $z == object; //K() zwraca true;


Ten post edytował byq_pl 9.09.2010, 10:01:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Rozwiązaniem mogłoby być coś takiego (o ile dobrze zrozumiałem)

  1. <?php
  2.  
  3. class MyClazz {
  4. protected function __construct() {
  5. // blah blah blah
  6. }
  7.  
  8. public static function newInstance() {
  9. return (/* Jakiś tam warunek */) ? new self() : false;
  10. }
  11. }
  12.  
  13. // ....
  14.  
  15. $my = MyClazz::newInstance();


Jednakże wg mnie źle kombinujesz i nie powinieneś robić czegoś takiego. To czy obiekt powinien być w ogóle utworzony powinno być sprawdzane przed próbą jego utworzenia, a nie w samym obiekcie/klasie.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 15:11