preg_replace is changing the type of replacement parameter !!

From: Date: Thu, 13 Sep 2001 09:27:57 +0000
Subject: preg_replace is changing the type of replacement parameter !!
Groups: php.dev 
Request: Send a blank email to php-dev+get-65862@lists.php.net to get a copy of this message
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("@One@"); $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

« previous php.dev (#65862) next »