Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmienne
Forum PHP.pl > Forum > Przedszkole
Szymciosek
Witam, zastanawia mnie czemu na pewnym kursie raz autor pisze:
var $zmienna
to jest w klasie, a w jakiejś funkcji np:

$zmienna...

szukałem czegoś na temat var w php, ale nie bardzo mi to poszło.

EDIT:
druga sprawa to różnica między:
-> a =>

wiem, że -> odnosi się do funkcji i zmiennych wewnątrz klasy
chyba jako przypisanie do nich wartości
mortus
Słówko var służyło w PHP4 do deklarowania właściwości (inaczej pól, czyli zmiennych wewnątrz klasy) klasy, w PHP5 już się go nie używa.


Co do różnicy między -> a =>, są to dwa zupełnie niezależne operatory. -> to operator wyłuskania, za pomocą którego możemy "wyłuskać"/pobrać pole klasy lub też metodę, natomiast => to operator przypisania wartości do klucza w tablicy.
Sephirus
-> odnosi się do dynamicznego dostępu do metod/własności obiektów
=> odnosi się do tablic gdzie klucz wskazuje na wartośc

  1. $tablica = array(
  2. 'pole1' => 'wartosc1',
  3. 'pole2' => 'wartosc2'
  4. );
  5.  
  6. // lub np w foreach:
  7.  
  8. foreach($tablica AS $klucz => $wartosc) {...}


Co do var to AFAIK to zaszłość ze starego PHP jeśli chodzi o zmienne klas. Tam używało się VAR do deklarowania własności (obecnie wystarczy operator zasięgu jak public, private, protected)

Szymciosek
co do var...

  1. <?php
  2.  
  3. class Test
  4. {
  5. var $artykuly;
  6.  
  7. function dodaj($numer, $ilosc)
  8. {
  9. $this->$artykuly...
  10. }
  11. }
  12.  
  13. ?>


po wpisaniu $this->$...
znajduje mi tą zmienną, ale bez var mi to nie działa, czy żeby to działało czegoś brakuje skoro już jest zbędnę korzystanie z var
mortus
  1. <?php
  2.  
  3. class Test
  4. {
  5. var $artykuly;
  6.  
  7. function dodaj($numer, $ilosc)
  8. {
  9. $this->artykuly...
  10. }
  11. }
  12.  
  13. ?>

Widzisz różnicę? Tak samo w PHP4, jak i w PHP5.
Nie działa, bo jeśli nie użyjesz słowa var, to musisz zmienną zainicjować domyślną wartością:
  1. <?php
  2.  
  3. class Test
  4. {
  5. $artykuly = null;
  6.  
  7. function dodaj($numer, $ilosc)
  8. {
  9. $this->artykuly...
  10. }
  11. }
  12.  
  13. ?>

Będzie to wtedy zmienna publiczna (public), zresztą z var też jest to zmienna publiczna.
Jeśli piszesz w PHP5, to stosuj public, private i protected do definiowania zasięgu zmiennych.
Szymciosek
Różnicy dużej nie ma... pisałeś, że nie używa się var przed chwilą więc o co chodzi ?
Jestem na przykładzie z klasą tutaj: http://phpkurs.pl/ponowne-uzycie-kodu/

i w sumie chodzi o kwestie podpowiedzi w kodzie
phpion
Teraz zamiast var używa się public, protected lub private. W skrócie można powiedzieć, że stare var to nowe public.
mortus
  1. // to:
  2. class Test {
  3. var $artykuly;
  4. function dodaj($numer, $ilosc) {
  5. $this->artykuly;
  6. }
  7. }
  8. // jest równoważne temu:
  9. class Test {
  10. public $artykuly;
  11. function dodaj($numer, $ilosc) {
  12. $this->artykuly;
  13. }
  14. }
  15. // i temu:
  16. class Test {
  17. $artykuly = null;
  18. function dodaj($numer, $ilosc) {
  19. $this->artykuly;
  20. }
  21. }

Przy czym jak już tłuczemy, dzisiaj używa się słów public, protected i private do określenia zasięgu pól klasy. We wszystkich powyższych przykładach $artykuly to pole o zasięgu globalnym/publicznym.
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.