Funkce unserialize může vrátit false ve dvou případech. Jednak v případě chyby a jednak při obnovování hodnoty false. Možná si řeknete, proč funkce nevrací hodnotu, která kolidovat nemůže. Důvod je ten, že funkce serialize je schopná uchovat v podstatě cokoliv, třeba i hodnotu null. Pro reportování chyb v této funkci by se báječně hodily výjimky, funkce se ale drží tradičního konceptu a vrací chybu typu E_NOTICE. Tuto chybu jde ošetřit několika způsoby:
<?php // využití proměnné $php_errormsg ini_set("track_errors", true); // povolení proměnné $php_errormsg $php_errormsg = ""; // vymazání případné předchozí chyby $original = unserialize($serialized); if ($php_errormsg) { // ošetření chyby } // použití funkce set_error_handler function error_handler($errno, $errstr) { // ošetření chyby } set_error_handler('error_handler'); $original = unserialize($serialized); restore_error_handler(); // šalamounské řešení $original = unserialize($serialized); if (false === $original && $serialized !== serialize(false)) { // ošetření chyby } ?>
Diskuse je zrušena z důvodu spamu.