Lekcje >> Podstawy PHP
Polimax

Drukarnia w Warszawie realizująca druk wizytówek, plakatów jak również fotoksiążki, fotoobrazy i fotokalendarze - z wysyłką na terenie całego kraju.

Kontrola zmiennych

Podczas tych zajęć, omówimy i przetesujemy działanie funkcji wbudowanych, zarządzających zmiennymi w PHP.

Sprawdzanie i ustawianie typów zmiennych

Dwie często stosowane funkcje ogólne, to string gettype(mixed $zmienna) oraz bool settype(mixed $zmienna, string $typ_zmiennej). Pierwsza z nich sprawdza typ, natomiast druga ustawia zmiennej wskazany typ. Ich działanie pokażemy na przykładzie:

Ćwiczenie 1_10_0_1. Sprawdzanie i ustawianie typów zmiennych

Zastosuj poniższy kod w pojedynczym pliku *.php.

<?php
  $a = 'Ala ma kota'; //typ string
  echo 'Typ zmiennej - ' . gettype($a) . '<br />';
  if (settype($a, 'integer')) echo gettype($a);
  else echo 'Nie można ustawić typu na integer';
?>

W PHP znajduje się wiele funkcji wbudowanych sprawdzających, czy zmienna jest wskazanego typu. Niektóre z nich sprawdzimy na przykładzie:

Ćwiczenie 1_10_0_2. Sprawdzanie czy zmienna jest danego typu

Zastosuj poniższy kod w pojedynczym pliku *.php.

<?php
  /*zastosujemy własną funkcję, która 
    wyświetli typ danej zmiennej*/
  function jaki_typ($zmienna)
  {
    $typ = '';
    if (is_integer($zmienna)) $typ .= 'integer, '; else
    if (is_float($zmienna)) $typ .= 'float, '; else
    if (is_string($zmienna)) $typ .= 'string, ';
    if (is_numeric($zmienna)) 
    $typ .= "oraz is_numeric($zmienna) === true";
    echo $typ.'<br />'; 
  }

  $a = 7;
  $b = 3.25;
  $c = 'Ala ma kota';
  $d = '55';
  
  echo '$a o wartości 7 jest typu '; jaki_typ($a);
  echo '$b o wartości 3.25 jest typu '; jaki_typ($b);
  echo '$c o wartości ' . "'Ala ma kota'" . ' jest typu '; jaki_typ($c);
  echo '$d o wartości ' . "'55'" . ' jest typu '; jaki_typ($d);
?>

Przeanalizuj kod oraz wykonanie skryptu, zauważ że:

  • Na początku zdefiniowano własną funkcję jaki_typ(), którą potem wywołano w kodzie skryptu.
  • Funkcja wbudowana is_numeric() daje wynik true w przypadku liczb całkowitych, zmiennoprzecinkowych jak również ciągów znaków numerycznych. Dla jednoznacznego określenia typu integer, float lub string, lepiej stosować odpowiednio funkcje is_integer(), is_float() oraz is_string().
  • Zastosowanie znaków cudzysłowia pozwoliło wyświetlić wartość zmiennej $zmienna oraz znaki apostrofów.

Sprawdzanie stanu zmiennej

Badanie aktualnego stanu zmiennej, możemy przeprowadzić za pomocą następujących funkcji wbudowanych:

  • bool isset(mixed $zmienna) - pobiera zmienną jako argument i zwraca wartość true, jeżeli zmienna istnieje lub false - w przeciwnym przypadku.
  • bool empty(mixed $zmienna) - pobiera zmienną jako argument i zwraca wartość true, jeżeli zmienna nie istnieje lub istnieje, ale posiada wartość pustą lub zerową.

Ćwiczenie 1_10_0_3. Sprawdzanie stanu zmiennej

Zastosuj poniższy kod w pojedynczym pliku *.php.

<?php
  //zmienna $a nie jest zainicjowana
  if (isset($a)) echo 'Zmienna istnieje'; 
  else echo 'Zmienna nie istnieje'; 
  echo '<br />';
  
  if (empty($a)) echo 'Zmienna jest pusta'; 
  else echo 'Zmienna nie jest jest pusta'; 
  echo '<br />';
  
  //inicjujemy zmienną $a nadając jej wartość 0
  $a = 0;
  if (empty($a)) echo 'Zmienna jest pusta'; 
  else echo 'Zmienna nie jest jest pusta'; 
?>

Zwróć uwagę, że sprawdzana zmienna $a, została zainicjowana dopiero w trzeciej części kodu, jednak jest pusta, ponieważ przypisaliśmy jej wartość zerową. Podobnie pusta będzie zmienna, której przyporządkujemy pusty ciąg znaków reprezentowany dwoma apostrofami pisanymi jeden po drugim. Pokazane funkcje są nieodzowne podczas sprawdzania danych wysłanych za pomocą formularza.


Jeżeli zapomniałeś jak przygotować i gdzie zapisywać pliki testowe: