Zmienne - wstęp

Zmienna jest elementem języka PHP, w którym zapisuje się jakąś wartość, np. liczbę, ciąg znaków (w tym fragment kodu html), może też posiadać bardziej skomplikowaną strukturę. Od stałej zmienna różni się przede wszystkim tym, że jej wartość można wielokrotnie zmieniać w trakcie wykonywania skryptu.

Zmienne rozpoczynają się od znaku "$", po czym następuje właściwa nazwa zmiennej. Powinna się ona zaczynać od litery (nie cyfry!) względnie znaku podkreślenia: "_". Rozróżniane są też duże i małe litery.

Oto przykłady deklaracji zmiennej z przypisaną wartością:

$wskaznik = 143.5;
$tekst = '143.5';
$num_str = "strona nr 34";

W pierwszym przypadku utworzyliśmy zmienną liczbową o nazwie wskaznik i przypisaliśmy jej liczbę 143.5. Zwróć uwagę, że zamiast przecinka należy użyć kropki, inaczej skrypt nie będzie działać.

Zmienne tekst i num_str to ciągi znaków (zmienne łańcuchowe). W przypadku ciągów musimy wartość zmiennej ująć w cudzysłów - pojedynczy bądź podwójny.

Zwróćmy uwagę, że wartość pierszej i drugiej zmiennej jest niby ta sama - 143.5. Na czym więc polega różnica? Otóż, pierwsza zmienna jest zmienną liczbową - po prostu liczbą, a więc można ją np. używać do różnych operacji matematycznych. Druga zaś chociaż jest wygląda jak liczba traktowana jest jak każdy inny ciąg znaków.

Oto prosty przykład wykorzystania zmiennych w osCommerce, plik catalog/ product_info.php (od linii 106):
<tr>
  <td class="pageHeading" valign="top"><?php echo $products_name; ?>
  </td>
  <td class="pageHeading" align="right" valign="top"><?php echo   $products_price; ?></td>
 </tr>
Echo spowoduje wyświetlenie wartości zapisanych w zmiennych $products_name i $products_price. Jeśli za zmienne podstawimy odpowiednio: Microsoft IntelliMouse    Explorer<br><span class="smallText">[MSIMEXP]</span>
i
69,50zł

to w przeglądarce, w podglądzie kodu zobaczymy ten fragment tak:
<tr>
  <td class="pageHeading" valign="top">Microsoft IntelliMouse Explorer<br><span  class="smallText">[MSIMEXP]</span></td>
  <td class="pageHeading" align="right" valign="top">69,50zł</td>
</tr>