Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zmienne
Szymciosek
post
Post #1





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


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

Ten post edytował Szymciosek 11.04.2012, 08:08:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


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.

Ten post edytował mortus 11.04.2012, 08:19:38
Go to the top of the page
+Quote Post
Sephirus
post
Post #3





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


-> 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)

Go to the top of the page
+Quote Post
Szymciosek
post
Post #4





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


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
Go to the top of the page
+Quote Post
mortus
post
Post #5





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


  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.

Ten post edytował mortus 11.04.2012, 08:40:45
Go to the top of the page
+Quote Post
Szymciosek
post
Post #6





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


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

Ten post edytował Szymciosek 11.04.2012, 08:40:09
Go to the top of the page
+Quote Post
phpion
post
Post #7





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Teraz zamiast var używa się public, protected lub private. W skrócie można powiedzieć, że stare var to nowe public.
Go to the top of the page
+Quote Post
mortus
post
Post #8





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


  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.

Ten post edytował mortus 11.04.2012, 08:47:28
Go to the top of the page
+Quote Post

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: 23.08.2025 - 10:19