Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: OOP problem z prostą klasą
Forum PHP.pl > Forum > PHP > Object-oriented programming
dziamber
Witam, dopiero raczkuję w tematyce programowania obiektowego więc proszę o wyrozumiałośc winksmiley.jpg Napisałem prostą klasę, jednak końcowy efekt nie jest taki jak zakładałem. Chodzi tutaj o to, że aplikacja pyta usera o imię i o wiek. Jeżeli ma 18 lat to zapraszam go do lokalu, jeżeli nie to go wypraszam. Jednak nie wyświetla mi imienia.
class.bramkarz.php
Kod
<?php
     class Bramka {
     private $_name;
     private $_wiek;
         public function przywitanieGoscia() {
             echo "Czesc {$this->getName()}";
         }
         public function getName() {
             return $this->name;
         }
         public function setName($name) {
             if(!is_string($name) || strlen($name) == 0) {
                 throw new Exception("Niepoprawna wartosc");
             }
         }
         function geWiek() {
             return $this->name;
         }
         function setWiek($wiek) {
             if(!is_numeric($wiek)) {
                 throw new Exception("Wprowadzona wartosc to nie liczba");
             }
         }
         function sprawdzWiek($wiek) {
             if($wiek >= '18') {
                 echo "Zapraszamy do lokalu";
             } else {
                 echo "Dzieci tutaj nie wpuszczamy, zjazd!";
             }
         }
     }
?>

aplikacja.php
Kod
<?php
     require_once('class.bramkarz.php');

if($_POST['imie'] != "" &&
       $_POST['wiek'] != "") {
     $imie = $_POST['imie'];
     $wiek = $_POST['wiek'];
     $objDemo = new Bramka();
     $objDemo->setName($imie);
     $objDemo->przywitanieGoscia();
     $objDemo2 = new Bramka();
     $objDemo2->sprawdzWiek($wiek);
     } else {
?>
Sprawdzmy czy mozesz wejsc do tego lokalu;)
<form method="post" action="demo.php">
<table>
     <tr>
         <td>Podaj swoje imie:</td><td><input type="text" name="imie"></td>
         <td>Podaj swoj wiek:</td><td><input type="text" name="wiek"></td>
     </tr>
</table>
<input type="submit" name="submit" value="aktywuj">
</form>
<?php
}
?>

Porszę o pomoc i rady. Z góry dziękuję.
singles
Cytat(dziamber @ 3.07.2009, 21:01:33 ) *
Jednak nie wyświetla mi imienia.


1.
  1. <?php
  2. public function setName($name) {
  3.    if(!is_string($name) || strlen($name) == 0) {
  4.        throw new Exception("Niepoprawna wartosc");
  5.    }
  6. }
  7. ?>

Wszystko fajnie, wyjątki i te sprawy. A gdzie zapisanie w polu klasy wartości przekazanej do funkcji?
2.
  1. <?php
  2. class Bramka {
  3.     private $_name;
  4.     private $_wiek;
  5.     [...]
  6. ?>

a
  1. <?php
  2. public function getName() {
  3.    return $this->name;
  4. }
  5. ?>

Ja tam w definicji klasy nie widzę pola "name" winksmiley.jpg
dziamber
Tak właśnie w tym leżał problem tongue.gif Już mi wcześniej napisał kolega z innego forum. Ale dzięki za pomoc.
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.