Kursy

Zmienne

Zmienne

Jak w każdym języku programowania niezmiernie istotnym pojęciem jest pojęcie zmiennej. Czym jest zmienna? Zmienna przechowuje dane w trakcie wykonywania skryptu. Każda zmienna posiada swoją nazwę i wartość np.:

$imie="Krzysztof";
$liczba1=30;
$liczba2=30.1;
 

Nazwy zmiennych

Zmienne jak już wspomniałem posiadają swoje nazwy, dzięki którym możemy się odwoływać do wartości danej zmiennej. Nazwy zmiennych mogą się składać z liter, cyfr i znaków podkreślenia. Nie mogą jednak rozpoczynać się od cyfry. Każdą nazwę zmiennej poprzedza się znakiem dolara "$". Oto prawidłowe nazwy zmiennych:

$imie;
$Imie;
$MojeImie;
$imie4;
$moje_imie;
 

Należy pamiętać, że w nazwach zmiennych jest uwzględniana wielkość liter. Oznacza to, że zmienne $imie i $IMIE to dwie różne zmienne i odwołując się do nich w programie należy zwrócić na to uwagę.

Typy zmiennych

Zmienne w PHP dzielą się na typy, np.: łańcuchy znakowe (string), liczby całkowite (integer), liczby zmiennoprzecinkowe (double).
W PHP nie jest wymagane wcześniejsze deklarowanie zmiennej, tj. wcześniejsze określanie typu zmiennej. Typ zmiennej jest automatycznie określany na podstawie wartości do niej przypisanej.

$imie="Krzysztof" - zmienna typu string
$liczba1=30 - zmienna typu integer
$liczba2=30.4 -zmienna typu double
 

Stwórzmy teraz prosty skrypt wykorzystujący zmienne

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" Content="tekst/html"; charset=iso-8859-2">
<TITLE>Nazywam się...</TITLE>
</HEAD>
<BODY>


<?
// Imię i nazwisko zostało zapamiętane w zmiennych,
// a następnie wyświetlone za pomocą funkcji "print"

$imie="Krzysztof";
$nazwisko="Nowak";
print("Nazywam się ".$imie." ".$nazwisko);
?>

</BODY>
</HTML>

 



Po wykonaniu skryptu i przesłaniu go do przeglądarki na ekranie pojawi się tekst:

Nazywam się Krzysztof Nowak
 



Oczywiście ten sam efekt otrzymalibyśmy bez użycia zmiennych wystarczyłoby tylko zapisać print("Nazywam się Krzysztof Nowak"); .Jednak z użycia zmiennych płyną inne korzyści. Możemy zmienić ich wartość (chociaż nie przewiduję byś często zmieniał swoje imię) i wyświetlony tekst wyglądałby inaczej.

Przypisywanie wartości do zmiennych

Aby określić wartość danej zmiennej używamy znaku równości - to tzw. operator przypisania.

$imie="Krzysztof"
 

Typ zmiennej, jak już wspomniałem, zostanie zmieniony tak, by odpowiadał typowi danych zapisanych w tej zmiennej.
Wartość zmiennej typu string, czyli dowolny ciąg znaków, zapisujemy zawsze w cudzysłowach.

$zmienna="To jest zmienna typu string";



Możemy również zapisać tę samą wartość w cudzysłowach pojedynczych:

$zmienna='To jest zmienna typu string';



Jednak istnieje pewna różnica w stosowaniu obydwu cudzysłowów. W łańcuchach w podwójnych cudzysłowach następuje tak zwana interpolacja zmiennych. Oznacza to, że nazwy zmiennych zawartych w takich łańcuchach są zastępowane przez ich wartości.

$imie="Krzysztof";
$nazwisko="Nowak";
$tekst="Nazywam się $imie $nazwisko";



Zmienna $tekst przyjmuje teraz wartość: Nazywam się Krzysztof Nowak

W przypadku użycia pojedynczych cudzysłowów:

$tekst='Nazywam się $imie $nazwisko';
 

Zmienna $tekst przyjmie wartość: Nazywam się $imie $nazwisko.

Przyjrzyj się jeszcze naszemu skryptowi z wykorzystaniem funkcji "print":

$imie="Krzysztof";
$nazwisko="Nowak";
print("Nazywam się ".$imię." ".$nazwisko);
 

W celu połączenia ze sobą łańcuchów został tu użyty znak kropki. Inaczej operator połączenia łańcuchów.

poprawnie niepoprawnie
$tekst=$imie.$nazwisko $tekst=$imie $nazwisko (błąd parsacji)
$tekst="$imie $nazwisko" $tekst="$imie.$nazwisko" (kropka w tym przypadku jest znakiem, a nie operatorem połączenia.)
  $tekst='$imie $nazwisko' (zmienna $tekst ma wartość: $imie $nazwisko)



Wartości zmiennych typu integer (liczba całkowita) oraz double (liczba zmiennoprzecinkowa) zapisujemy bez cudzysłowów:

$liczba=21;
$inna_liczba=356;
$kolejna_liczba=35.46;
 

Na zmiennych obu tych typów można przeprowadzić działania matematyczne za pomocą operatorów np.: "+" "-" "*" "/"

Napiszmy prosty skrypt obliczający pole prostokąta.

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" Content="tekst/html"; charset=iso-8859-2">
<TITLE>Pole prostokąta<TITLE>
</HEAD>
<BODY>

<?

//W zmiennych zapisujemy boki prostokata nastepnie za pomocą operatora "*" obliczamy jego pole

$bokA=10;
$bokB=7;
print("Pole prostokąta o bokach $bokA i $bokB wynosi: ".$bokA*$bokB);
?>

</BODY>
</HTML>



Pobierz przykład: zmienne.zip>