Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Nie zrozumiała zmienna
Forum PHP.pl > Forum > Przedszkole
Tom:-)
Mam taki skrypt i nie rozumiem zmiennej dzielnik oraz co robi zapis: $dzielnik.=$i.' '
  1. <?
  2.    for($liczba=1; $liczba<=20; $liczba++)
  3.    {
  4.        $dzielnik='';
  5.        for ($i=1; $i<=$liczba; $i++)
  6.            if ($liczba%$i==0) $dzielnik.=$i.' ';
  7.            echo'Liczba '.$liczba.' ma dzielniki: '.$dzielnik.'<br />';
  8.    }
  9. ?>
tomsi
Dodaje do zmiennej $dzielnik liczbę z pętli, która jest w zmiennej $i

Aha tam jeszcze jest ' ' to dla oddzielenia liczb (dzielników) żeby nie były sklejone tlyko ładny odstęp między nimi smile.gif
melkorm
  1. <?php
  2. $dzielnik.=$i.' ';
  3. ?>


jest na równi z :

  1. <?php
  2. $dzielnik = $dzielnik . $i . ' ';
  3. ?>

tzn "dopisywania do stringu / zmiennej"

różnica taka że to skrócony zapis
Tom:-)
Dobrze to zrozumiałem. A co oznacza zapis: $dzielnik='' - przecież to nie oznacza że w zmiennej nic nie ma
l0ud
To zadeklarowanie pustej zmiennej.

  1. <?php
  2. $dzielnik .= 'coś'
  3. ?>


jest równoznaczne z

  1. <?php
  2. $dzielnik = $dzielnik.'coś'
  3. ?>


Czyli odnosimy się do wartości zmiennej. Jeżeli nie zostałaby zadeklarowana, wywołalibyśmy notice, a chyba tego nie chcemy? smile.gif
tomsi
Wykonaj ten skrypt:

  1. <?php
  2. $zmienna= "1";
  3. echo "$zmienna";
  4. ?>


a potem ten:

  1. <?php
  2. $zmienna= "1";
  3. $zmienna= ' ';
  4. echo "$zmienna";
  5. ?>


zobaczysz różnicę smile.gif
Tom:-)
I pusto mam. Czyli wartość tej zmiennej jest pusta. Muszę się teraz zastanowić co ona daje bo uważam że jest ona zbędna i można było by to inaczej zapisać. Ale może się myle
tomsi
No dajesz ją pustą żeby była pusta smile.gif Jakbyś coś chciał do niej dodać i mieć pewność że będzie pusta. Np. w sklepie internetowym czasem się tak robi żeby do jednej zmiennej dodać całe zamówienie klienta i żeby mieć pewność, że nie pozostało tam nic z poprzedniego zamówienia.
Tom:-)
Ok. Wiem że to jest potrzebne ale nie wiem na jakiej zasadzie. Dziękuję za pomoc starszym kolegą
phpion
Cytat(Tom:-) @ 13.11.2008, 20:50:41 ) *
I pusto mam. Czyli wartość tej zmiennej jest pusta.


Cytat(tomsi @ 13.11.2008, 21:15:52 ) *
No dajesz ją pustą żeby była pusta smile.gif


Dla ścisłości: zmienna nie jest pusta tylko przyjmuje wartość jednej spacji.
Tom:-)
Gdybym pisał sam ten skrypt napisał bym go bez zmiennej $dzielnik. Ukazał by mi się błąd i bym nie wiedział co może być przyczyną. Nie mogę zrozumieć co daje zmienna dzielnik. Tworząc ten skrypt bym napisał tak:
  1. <?php
  2. if ($liczba%$i==0) $i.' ';
  3. ?>

Nie tworzył bym $dzielnik. Czy możecie mi wytłumaczyć jakie zastosowanie ma $dzielnik od strony technicznej
phpion
Hmmm jestem ciekaw co ten twój kod miałby robić smile.gif bo na pewno nic konkretnego winksmiley.jpg

Zmienna $dzielnik jest potrzebna do tego aby przechowywać wszystkie dzielniki danej liczby oddzielone od siebie spacjami*. Później wypisujesz komunikat:
  1. <?php
  2. echo'Liczba '.$liczba.' ma dzielniki: '.$dzielnik.'<br />';
  3. ?>


* jest to zmienna typowo pomocniczna, bez problemu można się bez niej obejść.
Tom:-)
phpion to skrypt do nauki. Ma wyświetlać dzielniki od 1 do20. Wszystko dobrze szło a tu klops. Przykład nie został omówiony. Dziś się od Was dowiedziałem co oznacza symbol .= (w dziale operatory nie zostało to opisane). Do tego momentu nie korzystałem z czegoś takiego i jest to dla mnie nowe.

Moje pytanie jest takie kiedy się używa takiego zapisu
melkorm
Cytat
Moje pytanie jest takie kiedy się używa takiego zapisu


Cytat
różnica taka że to skrócony zapis


Kiedy - wtedy kiedy chcesz dorzucić coś do danej zmiennej / ciągu znaków np:

masz zmienną $imie w której znajduje się np. string : 'Karol', ale chcesz by tam znalazło się jeszcze nazwisko : 'Kowalski' możesz zrobić to na dwa sposoby :
  1. <?php
  2. $imie = 'karol';
  3. //1 sposób
  4. $imie = $imie . 'Kowalski';  // kropki używa się do łączenia zmiennych z ciągiem znaków itp.
  5. //2 sposób
  6. $imie .= 'Kowalski'; // skrócony zapis linijki wyżej
  7. echo $imie;
  8. ?>


chyba bardziej się wytłumaczyć nei da ;p
phpion
Przeanalizuj sobie to:
  1. <?php
  2. for ($i=1; $i<=10; $i++) {
  3.    echo $i.' ';
  4. }
  5.  
  6. echo '<hr>';
  7.  
  8. $dzielnik = '';
  9. for ($i=1; $i<=10; $i++) {
  10.    $dzielnik .= $i.' ';
  11.    // tozsame z $dzielnik = $dzielnik.$i.' ';
  12. }
  13.  
  14. echo $dzielnik;
  15. ?>
Tom:-)
Ok zaczaiłem. Dziękuję. Z tym że w moim przykładzie nie można użyć samej $i.' '; musi być zmienna pomocnicza ale na to bym nie wpadł
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.