Bajo.pl PHP & MySQL Pomoc Cz@t Poczta
 Strona główna
 Newsy
 Kurs PHP
 Kurs MySQL
 Skrypty
 Download
 Księga gości
 O mnie

 Kurs PHP
 Kurs MySQL

Skrypty:

 Graficzny licznik
 Sonda poll
 Statystyki istat
 BlazeBoard PL
 Phorum 3.2.11
inne ->   

Statystyki:

Kurs PHP 
TYPY ZMIENNYCH

W PHP nie musisz deklarować nazwy zmiennej ani jej typu przed użyciem. W trakcie wykonywania skryptu typ określi samo PHP w zależności od sytuacji w jakiej zmienna została zastosowana.

Jeżeli jest dla Ciebie istotne, aby dana zmienna była określonego typu i nie chcesz, żeby decydował o tym parser PHP, możesdz użyć do ustalenia typu zmiennej funkcji settype(). Zmienna zostanie wtedy przekonwertowana na wskazany typ. Jezeli zaś chcesz sprawdzić typ zmiennej, możesz użyć funkcji gettype() do jego odczytania.



   Liczby całkowite

Liczby całkowite jako typ danych w PHP to dodatnie i ujemne liczby dziesiętne, liczby ósemkowe i szesnastkowe. Ich deklaracja wygląda następująco:

<?
$zmienna = 19; // liczba dziesiętna dodatnia
$zmienna = -5; // liczba dziesiętna ujemna
$zmienna = 0145; // liczba ósemkowa (w systemie dziesiętnym 101)
$zmienna = 0x19; // liczba szesnastkowa (w systemie dziesiętnym 25)
?>




   Liczby zmiennoprzecinkowe

Liczby zmiennoprzecinkowe zawierają część dziesiętną. W PHP zapisuje się je w sposób następujący:

<?
$zmienna = 1.234;
$zmienna = 1.2e3;
?>




   Łańcuchy znaków

Łańcuchy znaków przechowują różnego rodzaju teksty. Są one umieszczane w cudzysłowach pojedynczych (') lub w podwójnych ("). Tylko w tej drugiej sytuacji tekst zostanie przeszukany w celu znalezienia zmiennych. Jeżeli natomiast umieścisz tekst w cudzysłowach pochylonych (`), to zostanie on potraktowany przez parser PHP jako polecenie zewnętrzne, które nalezy wykonać.

<?
# deklaracja łańcucha
$string = "tekst łańcucha znaków";

# dodanie do zmiennej $string nowego łańcucha
$string = $string . " dodany łańcuch";

# przypisanie do zmiennej $string wartości 'pozycja 17'
$liczba = 17;
$string = "Pozycja: $liczba";

# pobranie pierwszej litery tekstu
$string = "dowolny tekst";
$pierwsza_litera = $string[0];
// zmienna $pierwsza_litera jest równa 'd'

# pobranie listy plików aktualnego katalogu do zmiennej $lista_plikow
$lista_plikow = `dir`; // windows
$lista_plikow = `ls`; // linux
?>




   Znaki specjalne

Znaki specjalne w PHP tworzy się przez dodanie przed danym znakiem backslasha (\). Istnieją dwa typy znaków specjalnych: znaki formatujące i znaki drukowane.

Znaki formatujące to np. znak \n, który oznacza przejście do nowej linii.

<?
#drukownie bez znaków \n
echo("pierwsza linia");
echo("druga linia");
?>

Powyższy kod zwróci do przeglądarki następujący wynik:

pierwsza liniadruga linia

Natomiast ten:

<?
# drukowanie z użyciem znaków \n
echo("pierwsza linia\n");
echo("druga linia\n");
?>

zwróci:

pierwsza linia
druga linia

Znaki nowej linii (\n) nie będą interpretowane przez przeglądarkę jako łamanie wiersza, w HTML-u bowiem stosuje się znacznik <br>. Wprowadzone przejścia do nowej linii będą widoczne natomiast w kodzie źródłowym strony.

Aby osiągnąć przejście do nowej linii i w kodzie strony, i w HTML-u, należy zastosować taki sposób pisania:

<?
# drukowanie z użyciem znaków \n i <br>
echo("pierwsza linia<br>\n");
echo("druga linia<br>\n");
?>

Pozwyższy kod zwróci do przeglądarki następujący tekst:

pierwsza linia<br>
druga linia<br>

Pewne znaki, na przykład $ czy " pełnią specjalne funkcje. Aby parser PHP traktował taki zapis jak normalny znak, a nie początek zmiennej czy tekstu, należy za każdym razem umieścić prze nim baskslash (\).

<?
# cudzysłowy proste
echo('znak " oznacza cudzysłów');
?>

Kod ten zwróci:

znak " oznacza cudzysłów

Spróbujmy teraz napisać to samo, ale z użyciem podwójnego cudzysłowu:

<?
# cudzysłowy podwójne
echo("znak \" oznacza cudzysłów\n");
?>

Kod ten zwróci to, co poprzednio, ale ze znakiem nokej linii na końcu, ponieważ w podwójnych cudzysłowach mogliśmy użyć zanaku \n. W pojedynczych zostałby on zignorowany i wydrukowany jako normalny tekst.

znak " oznacza cudzysłów

Gdybyśmy nie napisali przed znakiem " backslasha, parser PHP zwróciłby komunikat:

Parse error: parse error in <lokalizacja pliku> on line <numer linii>

Wybrane znaki specjalne:

\n - nowa linia
\r - powrót karetki
\t - tabulator
\\ - backslash
\$ - znak dolara
\" - cudzysłów podwójny




   Konwersje łańcuchów

Ponieważ PHP samo definiuje typy zmiennych, możliwe jest wykonywanie działań arytmetycznych na tekstach i liczbach (całkowitych lub zmiennoprzecinkowych). Łańcuch tekstowy będzie traktowany jako liczba zmiennoprzecinkowa, jeśli zawiera jeden ze znaków: -, e lub E. W innym przypadku łańcuch tekstowy będzie traktowany jako liczba całkowita. PHP spróbuje wyszukać na początku tekstu wartość numeryczną i jeśli jej nie znajdzie, podstawi wartość domyślną czyli zero (0).

<?
$zmienna = 2 + "14.8";
// zmienna jest równa 16.8 (liczba zmiennoprzecinkowa)

$zmienna = 1 + "-1.3e3";
// zmienna jest równa -1299 (liczba zmiennoprzecinkowa)

$zmienna = 5 + "tekst-15";
// zmienna jest równa 5 (liczba całkowita)

$zmienna = 7 + "10 linii tekstu";
// zmienna jest równa 17 (liczba całkowita)

$zmienna = "12.0 linii " + 3;
// zmienna jest równa 15 (liczba całkowita)

$zmienna = "12.0 linii " + 8.0;
// zmienna jest równa 20.0 (liczba zmiennoprzecinkowa)
?>




   Tablice

Tablice, pobobnie jak zmienne, służą do przechowywania danych. Są bardziej rozbudowaną strukturą danych. Odwołujemy się do nich za pomocą nazwy tablicy i indeksu liczbowego bądź tekstowego. Tablice jako struktury są tematem następnego rozdziału (rozdział o tablicach).

<?
# indeksy liczbowe
$tablica[0] = "element pierwszy o indeksie 0";
$tablica[1] = "element drugi o indeksie 1";

# indeksy tekstowe
$inna_tablica["pole1"] = 19;
$inna_tablica["pole2"] = 38;

# drukowanie zawartości elementów tablic
echo $tablica[0] . "<br>\n" . tablica[1] ."<br>\n" .
$inna_tablica["pole1"] . "<br>\n" . $inna_tablica["pole2"];
?>

Ostatnia linia skryptu zwraca następujący kod:

element pierwszy o indeksie 0<br>
element drugi o indeksie 1<br>
19<br>
38




   Klasy

Klasy służą do przechowywania zmiennych i funkcji w jednym obiekcie o określonym identyfikatorze.

<?
class koszyk {
   var $jablka;

   function dodaj_jablko($ilosc) {
      $this->jablka += $ilosc;
   }

   function podaj_jablka() {
      return($this->jablka);
   }

}
?>

Powyższy kod tworzy klasę o nazwie 'koszyk'. Można na niej wykonać dwie czynności: dodaj daną ilość jabłek oraz odczytać ile jest ich już w koszyku. Spójrzmy zatem na przykład korzystania z takiej klasy:

<?
# stwórz egzemplarz obiektu
$koszyk_1 = new koszyk;

# dodaj pięć jabłek
$koszyk_1->dodaj_jablko(5);

# dodaj jeszcze ilość jabłek w zależności od wartości zmiennej
$ilosc = 3;
$koszyk_1->dodaj_jablko($ilosc);

# odczytaj ilość jabłek w koszyku
$ile = $koszyk_1->podaj_jablka();
echo("Masz $ile jabłek w koszyku");
?>

Ten kod zwróci ilość jabłek w koszyku, czyli:

Masz 8 jabłek w koszyku



TEMATY:
 Zmienne
 Typy zmiennych
 Nazwy zmiennych
 Tworzenie zmiennych
 Operatory dla zmiennych
 Zasięg zmiennych
 Zmienne zmiennych
 Zmienne formularzy
 Stałe
 Zmienne predefiniowane

 Spis treści
[poprzedni temat - Zmienne] [następny temat - Nazwy zmiennych]

© copyright 2001 by Bartosz Maciaszek. Wszelkie prawa zastrzeżone.