http://php.net/manual/en/function.isset.php
Returns TRUE if var exists and has value other than NULL. FALSE otherwise.
Zwraca true, jeśli zmienna istnieje i ma wartość inną niż null. W pozostałych przypadkach zwraca false.
http://php.net/manual/en/function.empty.php
Returns FALSE if var exists and has a non-empty, non-zero value. Otherwise returns TRUE.
Zwraca false, jeśli zmienna istnieje i ma nie pustą, nie zerową wartość. W pozostałych przypadakch zwraca true.
http://php.net/manual/en/function.strlen.php
The length of the string on success, and 0 if the string is empty.
Zwraca długość string'a, jeśli wszystko się powiodło lub 0 jeśli string jest pusty.
$str = '';
if(strlen($str) == 0)
Linijka powyżej oznacza: Jeśli długość string'a jest równa zero to wykonaj kod pod spodem. Dla przykładu:
if(strlen('')==0)
czyli jest to odzwierciedlenie if(strlen($str) == 0) ?
Nie, nie jest to odzwierciedlenie dla tej funkcji, można szybko wykonać łatwy test:
<?php
$str = 0;
if(strlen($str) == 0){
echo 'true1';
}
if(empty($str)){
echo 'true2';
}
if(isset($str)){
echo 'true3';
}
?>
Dlaczego tak się dzieje? A no dlatego, że strlen może tylko liczyć długość łańcucha (string), a nie długość int'a. Popodstawiaj sobie za zmienną $str, odpowiednio: null, false,true,0,"",'',(string)0, itp..