Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Problem z prostą klasą PHP - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Problem z prostą klasą PHP (/thread-problem-z-prosta-klasa-php)



Problem z prostą klasą PHP - dziamber - 04-07-2009

Raczkuje w tematyce programowania obiektowego więc proszę o wyrozumiałośc Wink Napisałem sobie prostą klasę na podstawie innej prostej klasy, 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!";
            }
        }
    }
?>
przywitaj.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
}
?>
Wszelkie rady i pomoc mile widziana Wink


RE: Problem z prostą klasą PHP - Labsta.com - 04-07-2009

tak na oko to w public function setName($name) wcale nie nadajesz $this->name i potem getName() nie ma jak podać wartości do przywitanieGoscia()


RE: Problem z prostą klasą PHP - dziamber - 04-07-2009

O super, były dwa błędy, jeden ty rozwiązałeś a na drugi ja wpadłem dzięki tobie Wink Wielkie dzięki. A co do kodu, to poprawny w miarę? Chodzi mi o to czy uczę się w dobrym kierunku Wink


RE: Problem z prostą klasą PHP - Labsta.com - 04-07-2009

Pamiętam, że kiedyś przydała mi się ta seria:
http://webcity.pl/webcity/programowanie_obiektowe_w_php_5_cz__1
Wszystko wskazuje, że kroczysz w dobrą stronę. Napewno dodałbym przed funckjami private, public itd. Jeszcze takie coś mi przyszło na myśl, że chyba niepotrzebne jest tam "return $this->..." jeśli nie zwracasz wartości poza klasę.


RE: Problem z prostą klasą PHP - dziamber - 04-07-2009

Zerknę na tą serię, ale mam też książkę i to z niej czerpie wiedzę Wink Jeszcze raz dzięki a temat zamykam Wink