Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zwracanie wartości przez funkcję __construct
Forum PHP.pl > Forum > Przedszkole
Pronigo
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
nospor
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
dr_bonzo
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
hwao
  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. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.