Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyświetlanie zmiennej w funkcji.
Forum PHP.pl > Forum > Przedszkole
Mexet
Witam.
Od razu muszę przeprosić jeśli pomyliłem działy ale dosłownie kilka sekund temu założyłem tu konto biggrin.gif

Ale do rzeczy... Ostatnio zacząłem uczyć się php i czytam, wykonuje ćwiczenia i tak dalej.No i napotkałem pewien problem..
Czy da się wyświetlić zmienną w funkcji?questionmark.gif Pisze z telefonu więc kodu na razie nie wyśle ale zedytuję to w najbliższym czasie.
Na razie podam przykład (być m.oże to wystarczy do udzielenia pomocy wink.gif
A więc mamy przykładowy kodzik:
<?php
class nazwa{
public $zmienna;
public $zmienna1;
function wyswietl(){
echo "Wpisane zmienne to $zmienna i $zmienna1";
}
}
$cosTam = new nazwa;
$cosTam->zmienna=" tekst";
$cosTam->zmienna1="tekscik";
$cosTam->wyswietl();
?>
Kod wygląda mniej więcej tak jak wyżej no i mi to nie działa i nie wiem dlaczego ;/ Próbowałem różnych rzeczy bo zwykle próbuje rozwiązać problem samemu do skutku ale tu niestety poległem ;/
Help me, please biggrin.gif góry dziękuje.
com
używaj bbcode

w klasie tak samo musisz używać $this->zmienna; tylko nie używa sie tam echo a zwraca się dane za pomocą return smile.gif
Mexet
Dzięki za odpowiedź wink.gif Tylko nie wiem czy dobrze rozumiem (Jestem początkujący, więc jeśli się mylę, proszę o poprawienie mnie).

return zwraca chyba dane tak jakby "do programu" tylko chyba? A nie na ekran?
A w tym ćwiczeniu mam je wyświetlić tą funkcją na ekranie. Może jeśli je tu wrzucę to bdzie bardziej zrozumiałe wink.gif
"Zdefiniuj klasę Osoba, która ma trzy pola: $imię, $nazwisko i $rok_urodzenia oraz dwie metody: wypisz() - wyświetlającą wszystkie dane w przeglądarce oraz osiemnascie() - sprawdzającą, czy dana osoba jest pełnoletnia."

Więc jeśli dobrze interpretuję bo wywołaniu "wypisz();" powinny się na ekranie wyświetlić dane tej osoby, tak? No i mam coś takiego:

<?php
class Osoba{
public $imie;
public $nazwisko;
public $rok_urodzenia;
function wypisz(){
echo "$imie, $nazwisko, $rok_urodzenia";
}
function osiemnascie(){
$x=2016-$rok_urodzenia;
if($x>=18){
echo "Jestes pelnoletni";
}
}
}
$czlowiek = new Osoba;
$czlowiek->imie="Zdzisiek";
$czlowiek->nazwisko="Nowak";
$czlowiek->rok_urodzenia=1997;
$czlowiek->wypisz();
$czlowiek->osiemnascie();
?>

No i osiemnascie(); wyświetla się poprawnie jeśli chodzi o podany rok ale wypisz(); wyświetla tylko "," które są między zmiennymi ;/ Jakby nie były widoczne.
MGie
Dostałeś odpowiedź i nie poprawiłeś,
przeanalizuj:
Kod
https://pl.wikibooks.org/wiki/PHP/Klasy_i_obiekty
com
Owszem nie zwraca na ekran ale echo nie używa się w klasach, robi się kod obiektowy nie udawany, nawet jak w poleceniu było by inaczej to jest to źle echo robisz jak już wywołujesz dana metodę smile.gif
Mexet
Ach.. już rozumiem swój błąd, dzięki wielkie wink.gif
com
Nie zastaniwajac sie nad poprawnością to coś takiego
  1. class Osoba{
  2. public $imie;
  3. public $nazwisko;
  4. public $rok_urodzenia;
  5. function wypisz(){
  6. return "$this->imie, $this->nazwisko, $this->rok_urodzenia";
  7. }
  8. function osiemnascie(){
  9. $x=2016-$this->rok_urodzenia;
  10. if($x>=18){
  11. return true;
  12. }
  13. return false;
  14. }
  15. }
  16. $czlowiek = new Osoba;
  17. $czlowiek->imie="Zdzisiek";
  18. $czlowiek->nazwisko="Nowak";
  19. $czlowiek->rok_urodzenia=1997;
  20. echo $czlowiek->wypisz();
  21. if($czlowiek->osiemnascie())
  22. echo "Jestes pelnoletni";
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.