Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Kilka wartości
Forum PHP.pl > Forum > Przedszkole
ZuyPan
Witam.
Wstyd mi pisać taki temat ale cóż... Zacząłem uczyć się obiektówki (kiedyś trzeba zacząć) i stworzyłem sobie prostą klasę o nazwie Osoba. Klasa ta zbiera dane (imie, nazwisko) a także je wyświetla. Stworzyłem sobie obiekt o imieniu Daniel i nazwisku Kwiatkowski. Problem pojawia się kiedy chcę wyświetlić informacje o tym obiekcie... oto kod php

  1. <?php
  2. class Osoba {
  3. function Dane() {
  4. return $this->imie;
  5. return $this->nazwisko;
  6. }
  7.  
  8. function UstawDane($imie, $nazwisko){
  9. $this->imie = $imie;
  10. $this->nazwisko = $nazwisko;
  11. }
  12.  
  13. }
  14.  
  15. $obiekt = new Osoba();
  16. $obiekt->ustawDane(Daniel, Kwiatkowski);
  17.  
  18. print($obiekt->Dane());
  19.  
  20. ?>

Program wyświetla imię czyli Daniel ale nazwiska nie... Myślę, że problem jest w linii 8 lub 16 (pewnie źle rozdzieliłem dane w lini 16 lub coś w tym stylu)
MateuszS
nie mozesz w jednej funkcji zwracac dwoch zmiennych, dla nazwiska zrob osobna funkcje i dla imienia osobna, lub zwracaj w formie tablicy
ZuyPan
ok zmodyfikowałem kod i teraz wygląda tak
  1. <?php
  2. class Osoba {
  3. function WyswietlImie() {
  4. return $this->imie;
  5. }
  6.  
  7. function WyswietlNazwisko() {
  8. return $this->nazwisko;
  9. }
  10.  
  11. function ustawImie($imie) {
  12. $this->imie = $imie;
  13. }
  14.  
  15. function ustawNazwisko($nazwisko) {
  16. $this->nazwisko = $nazwisko;
  17. }
  18. }
  19.  
  20. $obiekt = new Osoba();
  21. $obiekt->ustawImie("Daniel");
  22. $obiekt->ustawNazwisko("Kowalski");
  23.  
  24. print($obiekt->WyswietlImie());
  25. echo '<br />';
  26. print($obiekt->WyswietlNazwisko());
  27. ?>

Pojawia się pytanie - czy nie ma sposobu aby wszystkie dane mogły być wyświetlone za pomocą jednej funkcji? Tworzenie dla wszystkich danych osobnych funkcji to koronkowa robota...
MateuszS
Akurat w twoim przypadku może to tak wylgąać, no ale OOP przeważnie używa się do czegoś większego niż wyświetlanie imienia i nazwiska, a to co napisałeś to tylko przykład użycia obiektówki, sam wygląd, konstrukcja, składnia itp.

Jeżeli chcesz to zrobić w jednej funckji to napisz metodę ustawDane($imie, $nazwisko) { $this->imie=$imie; $this->nazwisko=$nazwisko } a tamte dwie służące do zwracania zostaw, będzie troche krócej
ZuyPan
Ok dziękuję bardzo za zainteresowałem leci + smile.gif Od siebie dodam, że troszkę mnie zawiodła ta obiektówka (chyba, że to tylko pierwsze wrażenie)... W tej chwili z takim "dziubdzianiem" nie mogę sobie wyobrazić klasy odpowiedzialnej np. za wyświetlanie userów online oO
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.