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

 ID:                 64607
 Updated by:         a...@php.net
 Reported by:        sdeonline at gmail dot com
 Summary:            If second parameter is present, parse_str should
                     return the generated array.
-Status:             Open
+Status:             Closed
 Type:               Feature/Change Request
 Package:            Strings related
 Operating System:   Irrelevant
 PHP Version:        Irrelevant
-Assigned To:        
+Assigned To:        ab
 Block user comment: N
 Private report:     N

 New Comment:

Agree, that shouldn't be implemented due to too much change for no obvious 
reason. There are countless questions then, like modify your snippet:

$array = true;
parse_str($string, $array);
print_r($array);

What should happen then? Is $array an array() now or true?

@sdeonline if you feel like that's important, you could come up with an RFC 
clearing up doubtful places.


Previous Comments:
------------------------------------------------------------------------
[2013-04-08 02:43:00] larue...@php.net

it will be big BC break,  and I don't see any strong reason why need this.

thanks

------------------------------------------------------------------------
[2013-04-07 22:22:47] sdeonline at gmail dot com

Description:
------------
---
>From manual page: 
>http://www.php.net/function.parse-str#refsect1-function.parse-
str-returnvalues
---

In my humble opinion parse_str should be able to return the array it generates 
when it's not parsing to global vars. 
This could save lines of code and be more understandable.

This is quite useful if converting a received method variable as a parameter to 
another method that requires an array parameter. Because you don't need an 
extra 
line to just parse the string.

Test script:
---------------
// Initial string
$string = 'foo=bar&fruit=apple';

// This works:
// parse_str($string,$array);
// print_r($array);

// Now this would be better!
print_r(parse_str($string,true));

// Or the easy to the eyes version (but it quite misses the point.
$array = parse_str($string,true);
print_r($array);

Expected result:
----------------
Array 
( 
    [foo] => bar 
    [fruit] => apple 
)
Array 
( 
    [foo] => bar 
    [fruit] => apple 
)

Actual result:
--------------
Fatal error: Only variables can be passed by reference on line 9


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



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

Reply via email to