zoukankan      html  css  js  c++  java
  • str_replace() 用法bug和技巧

    语法
    
    str_replace(find,replace,string,count)
    
    参数    描述
    find    必需。规定要查找的值。
    replace    必需。规定替换 find 中的值的值。
    string    必需。规定被搜索的字符串。
    count    可选。一个变量,对替换数进行计数。
     
    
     
    
     
    
     
    
     
    
     
    
    这个我不确定是语法bug还是我写法的问题,当出现匹配字符出现一个在第一匹配选项的时候,会出现不完全匹配的情况,导致匹配出的字符有问题
    
    $list = str_replace(array(0,10,20,30,40), array('已取消','未付款','已付款','已发货','已收货'),20);
    
    $list = str_replace(array('10','20','30','40','0'), array('未付款','已付款','已发货','已收货','已取消'),20);
    echo $list;
    
    第一张情况下,打印出的结果是
    
    2已取消
    
    已取消
    
    第二种情况下是正常的,为什么呢?,按照第一种情况下第一次配置是拿0去匹配20,是可以匹配得到的吧0替换成了‘已取消’,打印出来的就是2已取消
    
    有些不能使用这种方法的就使用了自己在写一个方法去switch一下,然后返回值,当然像我这种懒人是不喜欢的
    
    这种不完全匹配是字符串的话,出现的问题就更大了
    
    $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
    $onlyconsonants = str_replace($vowels, "Z", "Hello World of PHP");
    
    
    echo $onlyconsonants;
    
     
    
    打印出这个,如果是匹配某个字符包含在你需要查找的字符里面还可以,如果只是替换你查找的到的直接替换,就不行了
    
    HZllZ WZrld Zf PHP
    
     
  • 相关阅读:
    自定义动画animate()
    【Java】正则表达式
    【Java】连接数据库SQLServer
    【Java】导入导出TXT文件
    【数据库】SELECT语句
    数据结构与算法系列之目录
    【Java】员工统计
    【Java】生产者消费者模式
    【Java】购物超市
    【Java】导入导出Excel表格
  • 原文地址:https://www.cnblogs.com/zx-admin/p/4616516.html
Copyright © 2011-2022 走看看