在实际的程序开发中,执行字符串替换操作是一件非常经常的事,对str_replace函数的实用也会非常频繁。

这段时间在看《PHP和MySQL Web开发》一书看到str_replace讲解,一段小提示写到:可以为str_replace的三个都使用数组传入,但讲解比较简单,于是决定自己的试验一下该函数在各个参数传入数组时的执行结果。

函数原型:mixed str_replace(mixed needle,mixed new_needle,mixed haystack[,int &count]);

needle:要被替换的字符串,new_needle:替换用的字符串,haystack:操作字符串,count:替换次数【可选参数】

我们重点试验前三个在使用数组是的执行方式:

在都不使用数组时,该函数直接使用new_needle替换所有的needle并返回替换后的字符串。如:str_replace("m","n","my name is jim!")返回ny nane is jin!

1、只对needle使用数组。

示例:str_replace(array('m','i'),'n',"my name is jim!");返回:ny nane ns jnn!

可以看出,函数顺序性的对数组中每个字符串进行替换,并返回替换后的字符串。

2、只对new_needle使用数组。

示例:str_replace('m',array('n','z'),"my name is jim!\n")返回:Arrayy naArraye is jiArray!

该替换比较有意思,如果只对第二个参数使用数组则函数将其作为字符串Array进行使用,将所有的needle替换为了数组。

3、只对haystack使用数组。

示例:str_replace("m","n",array("my name is jim!","the game is over!"))该语句执行结果返回一个数组,即分别为传入的两个字符串替换后的结果。

如果输出数组内容会看到:ny nane is jin! the gane is over!

4、对needle和new_needle都使用数组。

示例:str_replace(array("m","i"),array("n","z"),"my name is jim!")返回:ny nane zs jzn!

查看执行结果可以发现,如果前两个参数都使用数

php str_replace 源码,PHP中str_replace函数的详解相关推荐

  1. java object 源码_java中Object类 源代码详解

    packagejava.lang;public classObject {/*一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用.*/ private static native ...

  2. Caddy源码阅读(一)Run详解

    Caddy源码阅读(一)Run详解 前言 本次系列会讲解 caddy 整个生命周期涉及到的源码. 平时我们使用 caddy 都是使用 它的 二进制 分发文件,现在来分析 caddy 的 Run 函数. ...

  3. C++中substr()函数用法详解

    C++中substr()函数用法详解 原型: string substr (size_t pos = 0, size_t len = npos) const; 返回一个新构造的string对象,其值初 ...

  4. Mybatis源码学习(三)SqlSession详解

    前言 上一章节我们学习了SqlSessionFactory的源码,SqlSessionFactory中的方法都是围绕着SqlSession来的.,那么SqlSession又是什么东东呢?这一章节我们就 ...

  5. python中setattr()函数用法详解

    setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的. getattr()用法详见博文:python中getattr()函数用法详解_IT之一小佬的博客-CSDN ...

  6. c++ memset 语言_C++中memset函数用法详解

    本文实例讲述了C++中memset函数用法.分享给大家供大家参考,具体如下: 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常 ...

  7. php dump函数详解,php中var_dump()函数的详解说明

    本文章给大家全面的介绍一下关于php中var_dump()函数用法详解,大家可参考参考. var_dump()void var_dump ( mixed expression [, mixed exp ...

  8. centos7 mysql 源码安装_CentOS7.4 源码安装MySQL8.0的教程详解

    MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 以下为本人2018.4.23日安装过程的记录.整个过程大 ...

  9. C语言结构体中定义函数指针详解

    C语言结构体中定义函数指针详解 结构体指针函数应用场景之一--驱动程序编写 结构体的一些基本用法 形式1:先定义结构体类型,再定义变量 形式2:在定义类型的同时定义变量 形式3:直接定义变量,用无名结 ...

最新文章

  1. Python开发环境Wing IDE如何设置Python路径
  2. 《算法竞赛入门经典》习题——Chapter 3
  3. HDU2076 夹角有多大【水题】
  4. cvs导入oracle缺失逗号,pandas教程:使用read_csv()导入数据
  5. GAN 生成mnist数据
  6. 联想笔记本prtsc不能截图_笔记本上Fn+PrtSc 组合键无法调出截屏工具 Fn和Ctrl功能怎么交换...
  7. 手把手教你用Execel求解一个矩阵的逆矩阵
  8. Word自动目录字体过大,如何全选并修改样式
  9. 百度经纬度与高德经纬度互转
  10. 调试技巧(Debugging)
  11. 计算机专业群名有内涵,有内涵高大上的群名
  12. 计算机存储单位:bit, Byte, KB, MB, GB, TB, PB, EB, ZB, BB
  13. 2019\National _C_C++_A\试题 A: 三升序列
  14. VScode前端npm i 依赖后源代码管理器出现5k+更改文件解决办法
  15. IP反查网站/IP反查接口 域名汇总
  16. 快速学习-Saturn Console部署
  17. MYSQL学习笔记(一)概述
  18. 人工智能常识和干货,适合收藏
  19. python接单业余赚钱的门路_程序员业余时间怎么快速一年赚200万
  20. Android中关于Volley的使用(八)缓存机制的深入认识

热门文章

  1. jQuery 事件用法详解
  2. 8月25号 工作计划与实行
  3. java_IO总结(1)
  4. oracle 10g 手动创建scott(tiger) schema
  5. 韩国遭到日本制裁,三星被打回原形,原来是个组装工厂?
  6. 三种活体检测方式分析
  7. 人脸识别加VR技术 港媒:中国高科技加入“垃圾战”
  8. 量子物理 詹班 计算机,6量子物理作业答案
  9. ios yymodel 将字典转数组模型_Python3 字典
  10. 006_P名称空间的属性注入