Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Klasy - problem początkującego.
Rysh
post
Post #1





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Sytuacja wygląda następująco, napisałem wcześniej niedużą stronę żeby podszkolić się w PHP, niestety pisałem wszystko na funkcjach. Po moim ostatnim temacie postanowiłem napisać wszystko od początku, już na obiektach. Jakoś nie mogę się do tego przyłożyć i zrozumieć. Czego nie napiszę wyskakuję błąd:
  1. <?php
  2. class user {
  3. private static $settings = array(
  4. 'login_min' => 3,
  5. 'login_max' => 16,
  6. );
  7. public static function zarejestruj ($login, $haslo, $rehaslo) {
  8. try {
  9. if ($haslo != $rehaslo) {
  10. throw new Exception("Podane hasła muszą być takie same.");
  11. }
  12. if (strlen($login) >= self::$setting['login_min'] && strlen($login <= self::$setting['login_max'])) {
  13. throw new Exception("Login musi mieć od ". self::$setting['login_min'] ." do ". self::$setting['login_max'] ." znaków.");
  14. }
  15. }
  16. catch(Exception $wyjatek) {
  17. echo $wyjatek -> getMessage();
  18. }
  19. }
  20. }
  21. ?>

Cytat
Fatal error: Access to undeclared static property: user::$setting in /home/rysh/public_html/class/user.class.php on line 13


Chciałbym zacząć od rejestracji, jeśli miałbym przykład dobrze wykonanej działającej funkcji później bym miał z górki, ponieważ mógłbym się wzorować na niej. Niestety już ta pierwsza sprawia mi problemu.

Posiadam również książkę "PHP5, radocha z programowania" z Helionu Steven'a Holzner'a - jednak tam jest opisane jak utworzyć Lwa oraz go wyświetlić. W rejestracji potrzebuje również sprawdzić przecież czy $login oraz reszta spełnia wszystkie wymagania, a tego już tam nie ma. Prawdopodobnie już teraz mam jakieś rażące błędy, proszę o jakieś nakierowanie mnie, abym w końcu mógł zacząć czerpać radość z programowania obiektowego (IMG:style_emoticons/default/smile.gif)

Rysh.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


  1. throw new Exception("Podane hasła muszą być takie same.");
- nie lepiej zwracać klasę komunikatu oraz jego id? Treść komunikatu to już sprawa bardziej interfejsu, czyli widoku. No i login chyba będzie sprawdzany nie tylko tutaj? Może jakaś klasa do walidacji? Przemyśl to na spokojnie, rozrysuj na papierze, zrób schemat co ma być w czym i co ma robić.

I radość czerpie się z dobrego programowania, każdy kod można spitolić, zamykanie kodu w klasach nie gwarantuje, że ktoś na jego widok nie dostanie palpitacji serca (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Posty w temacie


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: 4.10.2025 - 15:06