[Phpmyadmin-devel] a PHP 5.1.2 bug?

Sebastian Mendel lists at sebastianmendel.de
Fri Jan 13 00:47:06 CET 2006


Garvin Hicking schrieb:
> Hi Marc!
> 
>> Look at this sample code:
>> <?php
>> $the_query = "INSERT INTO `aaa` (`f1`, `f2`) VALUES ('1', 'aaa')";
>> preg_match('@INSERT\sINTO\s\`([^\`]+)\`@iu', $the_query, $error_table = array()
>> );
>> print_r($error_table); ?>
> 
> It surprises me that this has ever worked :)

me not!

it is more than logical that this should work, as = is always evaluated
first!


> I guess that PHP 5.1.2 has a different way of evaluating/processing the order of
> the array assignment. But the way of specifieing an assignment within a function
> call is something I've never seen before, and also looks a bit
> misleading-codewise, IMHO.
> 
> So you might want to ask how this problem came, but I'm pretty sure the answer
> will be "It was never meant to work, so you shouldn't have relied on it. We
> fixed this because of memory corruption issues" ;-)

i don't think so.

why?

whats the difference between

function( anotherFunction() );
function( $var = 'value' );

???

why should this not work?

for example in C i often see this to clarify parameters

function(true, false, true);
or
function($use_utf8 = true, $return = false, $escape = true);

what do you think is easier to read? and why should this not work in PHP?


-- 
Sebastian Mendel

www.sebastianmendel.de
www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet




More information about the Developers mailing list