php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #41909 var_export
Submitted: 2007-07-05 17:11 UTC Modified: 2007-07-05 21:13 UTC
From: stingbat at stingbat dot dk Assigned:
Status: Closed Package: Variables related
PHP Version: 5.2.3 OS: Windows
Private report: No CVE-ID:
 [2007-07-05 17:11 UTC] stingbat at stingbat dot dk
Description:
------------
Seems like there has been a change to the var_export-function, when comparing PHP4 and PHP5, as stated below:

PHP4
----
     314                 :         case IS_DOUBLE:
     315               8 :                 php_printf("%.*G", (int) EG(precision), Z_DVAL_PP(struc));
> from: http://gcov.php.net/PHP_4_4/lcov_html/ext/standard/var.c.gcov.php

PHP5
----
     407                 :         case IS_DOUBLE:
     408              42 :                 php_printf("%.*H", (int) EG(precision), Z_DVAL_PP(struc));
> from: http://gcov.php.net/PHP_5_2/lcov_html/ext/standard/var.c.gcov.php

Of some reason, the output don't give the same.
I don't know if it's PHP4 that has always had this problem, or if it's a new problem only existing in PHP5.

However, it gives difficulties, if trying to compare the results or want to output the results float-values to either JavaScript or Database. And especially when trying to create scripts that should work on both PHP-versions (4.x+5.x).

Reproduce code:
---------------
<?php
	$test_value = 1.50;

	setlocale(LC_ALL, 'da_DK.iso-8859-1', 'da_DK', 'danish', 'da');
	echo 'DK: ' . var_export($test_value, TRUE) . "\n";

	setlocale(LC_ALL, 'en');
	echo 'EN: ' . var_export($test_value, TRUE) . "\n";

	echo "\n" . PHP_VERSION;
?>

Expected result:
----------------
DK: 1.5
EN: 1.5

Actual result:
--------------
DK: 1,5
EN: 1.5

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2007-07-05 17:33 UTC] derick@php.net
Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows (zip):
 
  http://snaps.php.net/win32/php5.2-win32-latest.zip

For Windows (installer):

  http://snaps.php.net/win32/php5.2-win32-installer-latest.msi

I already fixed this I think... please try the snapshot. But are you really on Windows?
 [2007-07-05 20:31 UTC] stingbat at stingbat dot dk
Has it just been fixed?
Wasn't able to find any bug related to this issue, but could just see that there was a problem with PHP 5.2.3 (on multiple both Windows 2000 and XP).

Seems like it is fixed in the CVS snapshot, as far as I can see.

Thanks for the quick reply :)

Do you know in how many version of PHP5, the issue has existed?
 [2007-07-05 20:52 UTC] derick@php.net
5.2.1 to 5.2.3 only, I didn't file a bug for this, but I will write this one in the NEWS file.
 [2007-07-05 21:13 UTC] stingbat at stingbat dot dk
Ah I see, that's okay :)

Thanks for the fix anyway.

// over and out ;-)
 
PHP Copyright © 2001-2014 The PHP Group
All rights reserved.
Last updated: Fri Apr 18 08:02:55 2014 UTC