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: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: stingbat at stingbat dot dk
New email:
PHP Version: OS:

 

 [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

Pull Requests

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-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 14:01:29 2024 UTC