函数原型:mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
这个函数的三个参数类型都是mixed,所以它们都既可以是字符串,也可以是数组,因此就有以下几种用法:
1、 $search和$replace都是字符串,这是最常见的用法
echo str_replace("a", "apple", "This is a demo.");
输出:This is apple demo.
2、$search为数组,对$search中的数组元素逐个替换成$replace,最终输出为字符串。
echo str_replace(array("a", "p","o"), "apple", "This is a demo.");
输出:This is aappleapplele demapple.
3、$replace为数组,会报错且不会输出预想的结果,不建议使用
echo str_replace("a", array("apple", "pear"), "This is a demo.");
输出:This is Array demo.并报错 Notice: Array to string conversion
4、$subject为数组,$subject中的每个数组元素都会做一次独立替换,最终输出为数组。
print_r(str_replace("a", "apple", array("This is a demo.", "This is not a demo.")));
输出:Array ( [0] => This is apple demo. [1] => This is not apple demo. )
5、$search和$replace都为数组,这时又可以分为三种情况:
a).$search和$replace一样长,则相同下标对应替换
b).$search比$replace长,则$search中比$replace多出的数组元素都被替换成空字符串
c).$search比$replace短,则$replace中多出的数组元素被忽略
echo str_replace(array("a", "o"), array("apple", "pear"), "This is a demo.");
输出:This is apple dempear.
6、$search、$replace和$subject都为数组,这是以上多种情况的综合
print_r(str_replace(array("a", "o"), array("apple", "pear"), array("This is a demo.", "This is not a demo.")));
输出:Array ( [0] => This is apple dempear. [1] => This is npeart apple dempear. )