Edit report at https://bugs.php.net/bug.php?id=37040&edit=1

 ID:                 37040
 Updated by:         ras...@php.net
 Reported by:        indeyets at gmail dot com
 Summary:            autoconversion of variable names should be turned
                     off
 Status:             Open
 Type:               Feature/Change Request
-Package:            Feature/Change Request
+Package:            *General Issues
 Operating System:   FreeBSD 5.4
 PHP Version:        5.1.2
 Block user comment: N
 Private report:     N

 New Comment:

extract() is able to extract directly into the current scope and would break 
without this substitution so it can't be completely removed, but it could be 
isolated to the time of the extract() call I suppose.


Previous Comments:
------------------------------------------------------------------------
[2012-07-11 14:46:17] alastair at propcom dot co dot uk

Since register globals is removed in PHP 5.4, there is no longer any 
justification for this behaviour and it should be removed entirely.

If anyone else comes up with any justification for this behaviour, then that 
justifying factor should be removed because this modifying GET variable names 
is 
completely out of line.

Not that I'm bitter.

------------------------------------------------------------------------
[2006-04-11 14:09:13] indeyets at gmail dot com

to make myself clear:
I propose to turn off substitution of 'dots' with 'underscores' in variable 
names only for autoglobal-arrays.

Substitution still should be made for registered globals.

------------------------------------------------------------------------
[2006-04-11 13:49:26] indeyets at gmail dot com

Description:
------------
Currently, PHP does autoconversion of 'dots' in external variable names to 
'underscores'. It is documented here: http://ru.php.net/variables.external

It does make sense when application has register_globals enabled and prevents 
losing of incorrectly named variables.

Though, it doesn't make sense when register_globals setting is disabled. In 
this mode, all external variables are placed inside of associative array, and 
'dot' is just as legal for the key-name as 'underscore' is

Reproduce code:
---------------
<?php
    echo '<a href="'.$_SERVER["SCRIPT_NAME"].'?var.name=value">test</a><hr>';
    echo '<pre>';
    var_dump($_GET);
    echo '</pre>';
?>


Expected result:
----------------
array(1) {
  ["var_name"]=>
  string(5) "value"
}

Actual result:
--------------
array(1) {
  ["var.name"]=>
  string(5) "value"
}


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=37040&edit=1

Reply via email to