php str_replace 源码,PHP中str_replace函数的详解
在实际的程序开发中,执行字符串替换操作是一件非常经常的事,对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函数的详解相关推荐
- java object 源码_java中Object类 源代码详解
packagejava.lang;public classObject {/*一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用.*/ private static native ...
- Caddy源码阅读(一)Run详解
Caddy源码阅读(一)Run详解 前言 本次系列会讲解 caddy 整个生命周期涉及到的源码. 平时我们使用 caddy 都是使用 它的 二进制 分发文件,现在来分析 caddy 的 Run 函数. ...
- C++中substr()函数用法详解
C++中substr()函数用法详解 原型: string substr (size_t pos = 0, size_t len = npos) const; 返回一个新构造的string对象,其值初 ...
- Mybatis源码学习(三)SqlSession详解
前言 上一章节我们学习了SqlSessionFactory的源码,SqlSessionFactory中的方法都是围绕着SqlSession来的.,那么SqlSession又是什么东东呢?这一章节我们就 ...
- python中setattr()函数用法详解
setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的. getattr()用法详见博文:python中getattr()函数用法详解_IT之一小佬的博客-CSDN ...
- c++ memset 语言_C++中memset函数用法详解
本文实例讲述了C++中memset函数用法.分享给大家供大家参考,具体如下: 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常 ...
- php dump函数详解,php中var_dump()函数的详解说明
本文章给大家全面的介绍一下关于php中var_dump()函数用法详解,大家可参考参考. var_dump()void var_dump ( mixed expression [, mixed exp ...
- centos7 mysql 源码安装_CentOS7.4 源码安装MySQL8.0的教程详解
MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 以下为本人2018.4.23日安装过程的记录.整个过程大 ...
- C语言结构体中定义函数指针详解
C语言结构体中定义函数指针详解 结构体指针函数应用场景之一--驱动程序编写 结构体的一些基本用法 形式1:先定义结构体类型,再定义变量 形式2:在定义类型的同时定义变量 形式3:直接定义变量,用无名结 ...
最新文章
- Python开发环境Wing IDE如何设置Python路径
- 《算法竞赛入门经典》习题——Chapter 3
- HDU2076 夹角有多大【水题】
- cvs导入oracle缺失逗号,pandas教程:使用read_csv()导入数据
- GAN 生成mnist数据
- 联想笔记本prtsc不能截图_笔记本上Fn+PrtSc 组合键无法调出截屏工具 Fn和Ctrl功能怎么交换...
- 手把手教你用Execel求解一个矩阵的逆矩阵
- Word自动目录字体过大,如何全选并修改样式
- 百度经纬度与高德经纬度互转
- 调试技巧(Debugging)
- 计算机专业群名有内涵,有内涵高大上的群名
- 计算机存储单位:bit, Byte, KB, MB, GB, TB, PB, EB, ZB, BB
- 2019\National _C_C++_A\试题 A: 三升序列
- VScode前端npm i 依赖后源代码管理器出现5k+更改文件解决办法
- IP反查网站/IP反查接口 域名汇总
- 快速学习-Saturn Console部署
- MYSQL学习笔记(一)概述
- 人工智能常识和干货,适合收藏
- python接单业余赚钱的门路_程序员业余时间怎么快速一年赚200万
- Android中关于Volley的使用(八)缓存机制的深入认识