| 
        php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits             
             [2007-01-25 12:35 UTC] tony2001@php.net
  [2007-01-25 14:27 UTC] tacker@php.net
  | 
    |||||||||||||||||||||||||||
            
                 
                Copyright © 2001-2025 The PHP GroupAll rights reserved.  | 
        Last updated: Tue Nov 04 04:00:01 2025 UTC | 
Description: ------------ If locale is set to de_DE serialized arrays and objects with floats somewhere cannot be unserialized. Reproduce code: --------------- <?php error_reporting(E_ALL); ini_set('display_errors', 1); echo 'Setting locale to ' . setlocale(LC_ALL, 'de_DE') . "\n"; // Remove this to make it work $array = array('myval' => 1.2345); echo 'Serializing '; var_export($array); echo "\n"; $serialized = serialize($array); echo 'Got: ' . $serialized . "\n"; echo "Unserializing.\n"; $unserialized = unserialize($serialized); echo 'Got: ' . var_export($unserialized, true) . "\n"; echo 'This should be true: ' . var_export(($unserialized === $array), true) . "\n"; ?> Expected result: ---------------- $ php locale_serialize.php Serializing array ( 'myval' => 1.2345, ) Got: a:1:{s:5:"myval";d:1.2344999999999999307220832633902318775653839111328125;} Unserializing. Got: array ( 'myval' => 1.2345, ) This should be true: true Actual result: -------------- $ php locale_serialize.php Setting locale to de_DE Serializing array ( 'myval' => 1,2345, ) Got: a:1:{s:5:"myval";d:1,2344999999999999307220832633902318775653839111328125;} Unserializing. Notice: unserialize(): Error at offset 17 of 75 bytes in /var/www/alan-live/htdoc/test/locale_serialize.php on line 16 Got: false This should be true: false