Comportamento de tipos e operadores.
<?php
// O que é considerado vazio na função empty()
empty("");// true
empty(0);// true
empty("0");// true
empty(null);// true
empty(false);// true
empty(array());// true
// var $var; Variável declarada, mas sem valor definido
empty($var);// true
<?php
// O que é considerado FALSE em valores booleanos no PHP.
var_dump((bool) false);// false
var_dump((bool) 0);// false
var_dump((bool) 0.0);// false
var_dump((bool) '');// false
var_dump((bool) '0');// false
var_dump((bool) array());// false
var_dump((bool) null);// false, incluindo variáveis não definidas
// -1 é considerado TRUE, como qualquer valor não zero (negativos ou positivos)!