Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Zwracanie wartości przez funkcję __construct
Pronigo
post 28.08.2006, 09:47:02
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 8.05.2005
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


Witam przykładowy mam kod:

  1. <?php
  2. class klasa {
  3.  function __construct($a) {
  4. if ($a == 1) return 0;
  5. return 1;
  6.  }
  7. }
  8. ?>


Problem polega na tym ze przy tworzeniu obiektu musze sprawdzic czy zmienna $a ma inna wartosc niz 1, jezeli nie to funkcja __construct ma zwrócić 0 i zakończyć cały obiekt.

Piszę więc tak:

  1. <?php
  2. if ($obiekt = new klasa(1)) {
  3.  echo 'ok';
  4. } else {
  5.  echo 'blad';
  6. }
  7. ?>


Powyzszy kod powinien wyswietlic napis blad ale on wyswietla ok ;/

Prosze o pomoc

Ten post edytował Pronigo 28.08.2006, 11:37:08
Go to the top of the page
+Quote Post
nospor
post 28.08.2006, 09:48:39
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




konstruktor nie klasy nie zwraca żadnych wartosci. Mozna jedynie powiedziec ze zwraca dany obiekt i juz.
Możesz se ustawic zmienna w klasie i ją ustawiac a potem sprawdzac

proszę poprawić tytuł o znacznik zgodnie z zasadami forum Przedszkole:
Temat: Tematyka i zasady panujace na forum Przedszkole


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dr_bonzo
post 28.08.2006, 10:11:42
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Cytat
tworzeniu obiektu musze sprawdzic czy zmienna $a ma inna wartosc niz 1, jezeli nie to funkcja __construct ma zwrócić 0 i zakończyć cały obiekt.

No to uzyj php5 i wyrzuc wyjatek


lub uzyj statycznej metody tworzacej ten obiekt

---------
edit: nie zauwazylem __construct (czyli php5) przez to ze nie bylo tam "public" biggrin.gif


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
hwao
post 28.08.2006, 10:14:42
Post #4


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




  1. <?php
  2. class Object {
  3. public function __construct( $iVar ) {
  4. if( !$iVar !== 1 ) {
  5. throw new Exception( '$a ma inna wartosc niz 1, jezeli nie to zakończyć cały' );
  6. }
  7. }
  8. }
  9.  
  10. ?>


  1. <?php
  2. $bStatus = true;
  3. try {
  4. $Object = new Object( 1 );
  5. }
  6. catch( Exception $Exception ) {
  7. unset( $Object, $Exception );
  8. $bStatus = false;
  9. }
  10.  
  11. echo $bStatus ? 'ok' : 'błąd';
  12. ?>
Go to the top of the page
+Quote Post

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: 18.08.2025 - 23:52