Nowości w php 5.5 alpha

W artykule opiszę pokrótce niektóre nowości wprowadzone w php 5.5. Nowa funkcja boolval zwracająca wartość boolean zmiennej. Kilka przykładów z manuala php.

echo '0:        '.(boolval(0) ? 'true' : 'false')."\n";
echo '42:       '.(boolval(42) ? 'true' : 'false')."\n";
echo '0.0:      '.(boolval(0.0) ? 'true' : 'false')."\n";
echo '4.2:      '.(boolval(4.2) ? 'true' : 'false')."\n";
echo '"":       '.(boolval("") ? 'true' : 'false')."\n";
echo '"string": '.(boolval("string") ? 'true' : 'false')."\n";
echo '[1, 2]:   '.(boolval([1, 2]) ? 'true' : 'false')."\n";
echo '[]:       '.(boolval([]) ? 'true' : 'false')."\n";
echo 'stdClass: '.(boolval(new stdClass) ? 'true' : 'false')."\n";
Przed php 5.5 funkcja empty() przyjmowała tylko zmienne (cokolwiek innego zwróci Parse Error). np. poniższy kod nie będzie działał.
empty(trim($name)); //Zamiast tego należy użyć trim($name) == false. 
W nowej wersji funkcja ta może już przyjmować wyrażenie zatem powyższy kod jest już poprawny. Do tej pory do elementów tablic i ciągów znaków mogliśmy odwoływać się tylko w następujący sposób.
$tab = array('a', 'b', 'c');
echo $tab[1]; //wypisze b

$str = 'abc';
echo $str[0]; //wypisze a
Od php w wersji 5.5 można odwoływać się już w poniższy sposób:
echo array('a', 'b', 'c')[1]; //wypisze b
echo 'abc'[0]; //wypisze a
Prawda, że ciekawe? Spójrzmy teraz na poniższy jeszcze ciekawszy przykład.
function getTab() {
    return array('a', 'b', 'c');
}
echo getTab()[1]; //wypisze b
Od nowej wersji php (5.5) wprowadzono blok finally do instrukcji try catch. Kod z tego bloku będzie zawsze wykonany po bloku try catch niezależnie czy wyjątek został rzucony i czy wystąpił.