Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> OOP problem z prostą klasą
dziamber
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 18
Dołączył: 15.04.2009
Skąd: Kwidzyn

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


Witam, dopiero raczkuję w tematyce programowania obiektowego więc proszę o wyrozumiałośc (IMG:http://forum.php.pl/style_emoticons/default/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ę.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
singles
post
Post #2





Grupa: Zarejestrowani
Postów: 121
Pomógł: 26
Dołączył: 2.07.2007

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


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" (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
dziamber
post
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 18
Dołączył: 15.04.2009
Skąd: Kwidzyn

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


Tak właśnie w tym leżał problem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Już mi wcześniej napisał kolega z innego forum. Ale dzięki za pomoc.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 10:06