#45012 [Bgs]: parse_ini_file() does not correctly bitwise XOR constants
| From: | mjijackson at gmail dot com | Date: | Thu, 15 May 2008 22:58:23 +0000 |
| Subject: | #45012 [Bgs]: parse_ini_file() does not correctly bitwise XOR constants | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-125037@lists.php.net to get a copy of this message | ||
ID: 45012
User updated by: mjijackson at gmail dot com
Reported By: mjijackson at gmail dot com
Status: Bogus
Bug Type: Filesystem function related
Operating System: Win32
PHP Version: 5.2.6
New Comment:
I see. But shouldn't it include all of PHP's bitwise operators
(http://us.php.net/language.operators.bitwise)? The fact that it only
parses a subset is confusing and should probably be documented on
parse_ini_file()'s documentation page.
Or, perhaps the php.ini comment could be changed from:
"Expressions in the INI file are limited to bitwise operators"
(implying all bitwise operators) to
"Expressions in the INI file are limited to the following bitwise
operators"
That seems a bit clearer to me. Thanks for your quick response.
Previous Comments:
------------------------------------------------------------------------
[2008-05-15 21:50:01] felipe@php.net
The php.ini says:
; Expressions in the INI file are limited to bitwise operators and
parentheses:
; | bitwise OR
; & bitwise AND
; ~ bitwise NOT
; ! boolean NOT
This is valid also to files parsed by parse_ini_file() function.
------------------------------------------------------------------------
[2008-05-15 18:42:17] mjijackson at gmail dot com
Changed OS from Windows XP SP2 to more general Win32
------------------------------------------------------------------------
[2008-05-15 17:53:19] mjijackson at gmail dot com
Description:
------------
parse_ini_file() correctly uses the | and & bitwise operators on
constants. However, it does not correctly interpret the ^ (XOR)
operator. Instead, it interprets the entire statement as a string.
Reproduce code:
---------------
*** test.ini ***
or = E_ERROR | E_PARSE
xor = E_ALL ^ E_NOTICE
*** PHP ***
$ini = parse_ini_file('test.ini');
echo $ini['or'] . ' ' . (E_ERROR | E_PARSE);
echo "\n";
echo $ini['xor'] . ' ' . (E_ALL ^ E_NOTICE);
Expected result:
----------------
5 5
6135 6135
Actual result:
--------------
5 5
E_ALL ^ E_NOTICE 6135
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=45012&edit=1