preg_replace is modifying the type of replacement parameter !!

From: Date: Tue, 11 Sep 2001 12:24:41 +0000
Subject: preg_replace is modifying the type of replacement parameter !!
Groups: php.general 
Request: Send a blank email to php-general+get-66912@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.general (#66912) next »