[PHP-DEV] preg_replace is changing the type of replacement parameter !! From: Nicolas Guilhot (nguilhot <email protected>)
Date: 09/13/01

Hi guys,

When I use preg_replace with an array of integer as the replacement
parameter, this function modifies the type of each array element to string.
I don't understand why it alters the content of the array while this
variable is not pass by reference (True or not ??).

I have just upgraded to PHP 4.0.6 and it I don't think it was the case in
PHP 4.0.4 (the version I was using before, without this problem).

Here is a short example that demonstrate my problem.

<?php
$ary_pattern = array(" <email protected>@");
$ary_replace = array(1);
$string_before = "One example";
echo gettype($ary_replace[0]); // This line outputs 'integer'
$string_after = preg_replace($ary_pattern, $ary_replace, $string_before);
echo "<br>$string_after<br>";
echo gettype($ary_replace[0]); // This line outputs 'string'
?>

Is this a bug from preg_replace or am I doing wrong somewhere? Any help
would be appreciated.
Regards.

Nicolas Guilhot

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: php-dev-unsubscribe <email protected>
For additional commands, e-mail: php-dev-help <email protected>
To contact the list administrators, e-mail: php-list-admin <email protected>