Užitečné funkce v PHP

V PHP se často využívají funkce, které ověřují stav proměnné (existence, obsah, datový typ atp.). Zde je výběr nejpoužívanějších.

Převzetí hodnoty metodou GET

Tento skriptík demonstruje, jak se zpracovávají různé vstupy odesílané na server v URL. Očekává hodnotu v proměnné a:
http://.../get.php?a=5
Otestujte různé varianty URL a všímejte si výsledků, které vrací níže uvedené funkce var_dump(), isset(), empty(), gettype() a základní matematické operace:

Důkladně si vše prostudujte a vyzkoušejte!!!

Pracovní výpis funkcí var_dump()

Tato funkce navíc vrací i hodnotu proměnné včetně jejího datového typu. Hodí se při ladění programu nebo hledání chyb ve skriptu. Níže je výpis pomocí tohoto kódu:


<?php
  $a = $_GET['a'];
  var_dump($a);
?>

NULL

Všimněte si, že i když je zadáno číslo, $_GET načte hodnotu jako řetězec (string). Toto není chyba, ale vlastnost. Je na tvůrci skriptu, jak vstupní hodnotu otestuje a zpracuje. Např. číslo jde "vynutit" pomocí <input type="number">.


Test existence proměnné pomocí funkce isset()

Používá se pro kontrolu, zda proměnná vůbec existuje. Vrací logickou hodnotu TRUE (existuje) nebo FALSE (neexistuje). Otestujte různé varianty URL a všímejte si výsledků. Níže je výpis pomocí tohoto kódu:


<?php
  $a = $_GET['a'];
  var_dump($a);
?>
bool(false)

Test, zda má proměnná nastavenu hodnotu pomocí funkce empty()

Vrací logickou hodnotu TRUE (není nastavena nebo má hodnotu 0) nebo FALSE (je nastavena). Níže je výpis pomocí tohoto kódu:


<?php
  $a = $_GET['a'];
  var_dump(empty($a));
?>
bool(true)

Jednoduchý test existence "čehokoli" v GET (nebo i v POST)

Tento způsob ověření se hodí v případě, že jsou vstupní hodnoty načítané formulářem i výkonný skript, který je zpracovává v jednom PHP spuboru. Je to nejjednodušší řešení, jaké jde napsat.


if ($_GET) {
    //TRUE - v GET něco je 
} else {
    //FALSE - v GET nic není
}

V GET nic není.

Jednoduché výpočty s proměnnou "a"

Zde si všimněte jedné "zajímavé" věci. Pokud je zadán řetězec, který má na začátku číslo (např. 4abc, 125km, 123abc123) bude text i vše za ním ignorováno (přestože var_dump() bude hlásit "string"). Je zřejmé, že toto chování nelze ve skriptech běžně využívat a je nutné vždy rozlišovat mezi číslem a řetězcem.

NULL


Zjištění typu proměnné funkcí gettype()

Protože má PHP dynamické typování, není vždy jasné, jakého typu bude výsledek výrazu. Funkce vrací názvy string, integer, float nebo boolean. Níže je výpis pomocí tohoto kódu:


<?php
  $a = $_GET['a'];
  echo gettype($a);
?>

NULL