• 【二】php 字符串操作及三大流程控制


    字符串操作:

    • trim:去除字符串开始位置和结束位置的空格
    • ltrim:去除开始处的空格
    • rtrim:去除结束处的空格
    • strtoupper:将字符串转换为大写
    • strtolower:将字符串转换为小写
    • ucfirst:如果第一个字符是字母,就将该字符转为大写
    • ucwords:将字符串的每个单词的第一个字母转为大写
    • addslashes、stripslashes:格式化字符串(转义)
    • explode:将字符串分割成数组
    • join、implode:将数组组合成字符串(value值)
    • strtok:一次只从字符串去除一些片段
    $name="hello dsa";
    $newarr=strtok($name,' '); //每次取一段,需要while循环 全部取出
    while($newarr !=false){
        echo $newarr;
        $newarr=strtok(" ");
    }
    • strsub:截取字符串
    $str="hello word and cmf";
    //start不包含空格
    //$str=substr($str,1); //ello word and cmf.从下标1开始的整个字符串
    $str=substr($str,-9); //d and cmf.从-9的绝对值开始的整个字符串
    //length包含空格
    //$str=substr($str,0,7); //hell。从下标0开始的4个字符
    //$str=substr($str,2,-10); //llo wo.从下标2开始到倒数第10个字符
    var_dump($str);
    • strlen:获取字符串的长度
    • strstr、strchr、strrchr、stristr:在字符串中查找字符串
    • strpos:查找字符串出现的首次出现的位置
    • strrpos:查找字符串最后出现的位置
    • str_replace:替换字符串的某些字符
    • substr_replace:替换字符串的某些字符
    $test="hello world";
    echo str_replace('he','cmf',$test); //把he替换成cmf
    echo substr_replace($test,'cmf',4); //从第4个字符到最后一个字符,替换成cmf

    流程控制:

    1.顺序控制---不加控制的流程,默认按照顺序来执行你编写的代码

    2.分支控制--有选择的来执行代码

    • 单分支
    1. 语法:if(条件表达式){语句;}
    2. 快速入门
          $age=150;
          if($age>18){
              echo "你年龄大于18.要对自己的行为负责";
          }
    • 双分支
    1. 语法:if(条件表达式){语句;}else{语句;}
    • 多分支(if else if else、switch)
    1. 语法:if(条件表达式){语句;}else{语句;}
    2. elif可以有多个,也可以没有
    3. else可以没有
    4. 语法:switch(表达式){case 变量1;n多语句;break;case 变量1;n多语句;break;defual:n多语句;break;}
    5. case语句部分有一到多
    6. defaul语句可以没有(根据自己代码业务逻辑)
    7. 通常在case语句后要带上break。表示退出switch语句
    8. 常量类型(int、float、string、boolean)
          $mychar='a';    //常量可以为布尔类型(true)/字符串(“a”)
          //当用布尔类型匹配时,会自动转换数据类型
          switch ($mychar) {
              case 'a':    
                  echo "今天星期一"; //输出"今天星期一"
                  break;    //注意:如果没有break,就会顺序执行,直到遇到下一个break
              case 'b':
                  echo "今天星期二";
                  break;
              case 'c':
                  echo "今天星期三";
                  break;
              default:
                  echo "没有匹配的日期";
                  break;
          }
          //最终结论:首先按照case顺序进行匹配,如果一个都没匹配到则执行default,直到遇到break语句,退出switch
          echo "over";    //输出over 

     3.循环控制

    • for循环
    1. 语法:for(循环初值;循环条件;步长){语句;}
      <?php
          for ($i=1; $i <= 5; $i++) { 
              for ($m=1; $m <=$i ; $m++) { 
                  echo "*";
              }
                      echo "<br/>";
              }
      ?>
      /*结果:
      *
      **
      ***
      ****
      ***** */
    • while循环
    1. 语法:while(循环条件){//循环体}
          $a=0;
          while ( $a< 10) {
              echo "hello"."<br/>";    //输出10句hello
              $a++;    //对循环变量自增
          }
    • do...while循环控制
    1. 语法:do{循环体 }while(循环条件);
          $i=0;
          do{
              echo "hi"."<br/>";    //输出5次hi
              $i++;
          }while ($i<5);
          //先执行在判断循环条件

    ex1:打印整个金字塔 

     1   //打印整个金字塔 
     2  $n=3;
     3     for ($i=1; $i <= $n; $i++) { 
     4         //在打印*之前 先打印空格
     5         for ($j=1; $j<=$n-$i;$j++){
     6             echo "&nbsp;";
     7                 }
     8         //内层控制每层*的个数
     9         for ($m=1; $m <=($i-1)*2+1 ; $m++) { 
    10             echo "*";
    11         }
    12 
    13                 echo "<br/>";
    14         }
    15 /*打印结果:
    16   *
    17  ***
    18 *****
    19 */
    View Code

     ex2:打印空心金字塔

     1     $n=8;
     2     for ($i=1; $i <=$n ; $i++) {     //判断层数
     3         for ($m=0; $m <=$n-$i; $m++) { //金字塔前面的空格
     4             echo "&nbsp;";
     5         }
     6         for ($j=1; $j <=($i*2)-1 ; $j++) //每层的个数
     7         { 
     8                       //判断第一层和最后一层全部打印  
     9              if ($i==1||$i==$n)
    10             {
    11                 echo "*";
    12             }else
    13             {
    14                       //判断每层的第一个和最后一个打印*,其他输出空格
    15             if ($j==1||$j==($i*2)-1)
    16              {
    17                 echo "*";
    18             }
    19             else
    20             {
    21             echo "&nbsp;";
    22             }
    23             }
    24             // echo "*";
    25         }
    26         echo "<br/>";
    27     }
    28 ?>
    29 /*
    30 打印结果:
    31         *
    32        * *
    33       *   *
    34      *     *
    35     *       *
    36    *         *
    37   *           *
    38  ***************
    39 *    
    View Code

    ex3:简易计算器

     1 //ex2.php
     2 <html>
     3 </!DOCTYPE html>
     4 <html>
     5 <head>
     6     <title>jisuanqi</title>
     7 </head>
     8 <body>
     9 <form action="result.php" method="post">
    10 <table width="300px" border="0">
    11 <tr>
    12 <td>第一个数:</td><td><input type="text" name="num1"/></td>
    13 </tr>
    14 <tr>
    15 <td>第二个数:</td><td><input type="text" name="num2"/></td>
    16 </tr>
    17 <tr>
    18 <td>运算符</td>
    19 <td><select name="oper">
    20 <option value="+">+</option>
    21 <option value="-">-</option>
    22 <option value="*">*</option>
    23 <option value="/">/</option>
    24 </select></td>
    25 </tr>
    26 <tr >
    27 <td colspan="2"><input type="submit" value="计算结果" /></td>
    28 </tr>
    29 </table>
    30 </form>
    31 </body>
    32 </html>
    33 //result.php
    34 <?php
    35 //接受用户从ex2.php提交的数据
    36 //1.接受num1
    37     $num1=$_REQUEST["num1"];
    38 //2.接受num2
    39     $num2=$_REQUEST["num2"];
    40 //3.接受运算符
    41     $oper=$_REQUEST["oper"];
    42     $res=0;
    43     switch ($oper) {
    44         case '+':
    45             $res=$num1+$num2;
    46             echo "计算结果为:".$res;
    47             break;
    48         case '-':
    49             $res=$num1-$num2;
    50             echo "计算结果为:".$res;
    51             break;        
    52             case '+':
    53         case '*':
    54             $res=$num1*$num2;
    55             echo "计算结果为:".$res;
    56             break;
    57         case '/':
    58             $res=$num1/$num2;
    59             echo "计算结果为:".$res;
    60             break;                    
    61         default:
    62             echo "你输入的运算符不对";
    63             break;
    64     }
    65 ?>
    View Code

    界面显示:

    ex4:99乘法表

     1 <?php
     2 //判断层数
     3 for ($i=1; $i <=9 ; $i++) { 
     4     //每层所显示的内容
     5     for ($m=1; $m <=9 ; $m++) { 
     6         if($i>=$m){
     7             echo "$i*$m=".$m*$i."&nbsp;";
     8         }    
     9     }
    10     echo "<br/>";
    11 }
    12 ?>
    13 /*
    14 1*1=1 
    15 2*1=2 2*2=4 
    16 3*1=3 3*2=6 3*3=9 
    17 4*1=4 4*2=8 4*3=12 4*4=16 
    18 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 
    19 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
    20 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
    21 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
    22 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 
    23 */
    View Code

    ex5.选择不同的图片代表不同的剪刀锤子布,与随机生成的数字做剪刀锤子布游戏 

    ex4.php代码如下:

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4     <title></title>
     5     <!-- js代码。改变下拉值来改变所显示的图片 -->
     6     <script language="javascript" type="text/javascript">
     7     function mychange(obj) {
     8         var val=obj.value;
     9         var myimage=document.getElementById("myimg");
    10         if (val=='jd') {
    11             myimage.src="1.jpg";
    12         }else if (val=="cz") {
    13             myimage.src="thumbnail (2).jpg";
    14         }else if (val=="b") {
    15             myimage.src="thumbnail (3).jpg";
    16         }
    17     }
    18     </script>
    19 </head>
    20 <body>
    21 <form name="form" action="tijiao.php" method="post">
    22 你出拳:
    23     <!-- 为下拉框写一个onchange时间 -->
    24 <select name="bs" onchange="mychange(this);">
    25 <option value="jd">剪刀</option>
    26 <option value="cz">锤子</option>
    27 <option value="b">布</option>
    28 </select>
    29 <img src="thumbnail (4).jpg" id="myimg"/>
    30 <br/>
    31 <input type="submit" name="开始比赛">
    32 </form>
    33 </body>
    34 </html>
    View Code

    result.php的代码如下:

     1 <?php
     2 //获取下拉框所选的值
     3     $result=$_REQUEST["bs"];
     4     //产生随机数
     5     $rd=rand(0,2);
     6     switch ($result) {
     7         case 'b':
     8             if ($rd=="0") {
     9             echo "你出的是".$result.",我出的是布"."<br/>";
    10                 echo "平手" ;
    11             }elseif($rd=="1")
    12             {
    13             echo "你出的是".$result.",我出的是锤子"."<br/>";
    14             echo "你赢了";
    15         }else{
    16             echo "你出的是".$result.",我出的是剪刀"."<br/>";
    17             echo "你输了";
    18         }
    19             break;    
    20         case 'jd':
    21             if ($rd=="0") {
    22             echo "你出的是".$result.",我出的是布"."<br/>";
    23                 echo "你赢了" ;
    24             }elseif($rd=="1")
    25             {
    26             echo "你出的是".$result.",我出的是锤子"."<br/>";
    27             echo "你输了";
    28         }else{
    29             echo "你出的是".$result.",我出的是剪刀"."<br/>";
    30             echo "平手";
    31         }
    32             break;    
    33         default:
    34             if ($rd=="0") {
    35             echo "你出的是".$result.",我出的是布"."<br/>";
    36                 echo "你输了" ;
    37             }elseif($rd=="1")
    38             {
    39             echo "你出的是".$result.",我出的是锤子"."<br/>";
    40             echo "平手";
    41         }else{
    42             echo "你出的是".$result.",我出的是剪刀"."<br/>";
    43             echo "你赢了";
    44         }
    45             break;
    46     }
    47 ?>
    48         <!-- 注意:html代码需写在php代码外面 -->
    49         <a href="ex4.php">返回测试页面</a>
    View Code

    结果:

    4.循环相关语句----break语句

    基本概念:结束当前的for、while、do while、swith流程,可以给一个数字,表示退出到第几层

    入门案例:

        for ($i=0; $i <13 ; $i++) { 
            echo "hello".$i."<br/>"; //输出结果:从hllo0一直到hello10
            if ($i==10) {
                break;
            }
        }

    5.continue

    基本概念:continue用于结束本次循环剩余代码,从新开始新的一次循环(如果条件为真,就继续执行),continue后面也可以跟数字,表示从第几层循环开始

     1     for ($i=0; $i <2 ; $i++) { 
     2         for ($j=0; $j <4; $j++) {     
     3         if ($j==2) {
     4             continue 2;
     5         } 
     6         echo '$i='.$i."<br/>";
     7     }
     8     }
     9 /*
    10 $i=0
    11 $i=0
    12 $i=1
    13 $i=1
    14 hello
    15 */
    View Code

    6.goto

    基本概念:通过goto语句,我们可以跳转到指定的地方去执行

        //注意:在for里面定义两个变量,注意用逗号隔开
        for ($i=0,$j=50;$i <100 ; $i++) { 
            while ($j--) {    //一直在while里面的循环,直到跳出该循环
                if ($j==17) goto end;
            }
        }
        echo "$i=".$i;    //该语句不会被执行
        end:
        echo "j=17".$i."||".$j;

    7.常量

    基本概念:特殊的变量.

    1. 定义变量前面不需要定义$
    2. 常量一旦定义 ,则不能修改其值
    3. 常量在定义的时候,就需要给他赋初值
    4. 常量可以通过define或者const定义
    5. 常量的名称,一般说是全部大写,用下划线间隔
    6. 什么时候需要使用到这个常量呢?在程序中我们不希望某个值变化,则考虑使用常量(圆周率,税率)
        // 第一种方法
        define("TAX_TATE", 0.08);    //不允许改变
        echo TAX_TATE;    //输出0.08
        //第二种方法
        const TAX_TATE2=0.1;
        echo TAX_TATE2;    //输出0.1
  • 相关阅读:
    vue2 下载scss依赖包
    fastjson使用
    vscode format
    flutter 中涉的深拷贝
    通过pom给maven添加编译插件
    IDEA添加动态模板(Live Templates)
    Maven启动tomcat:run异常
    Redis
    tomcat启动时启动窗口出现乱码的解决方案
    无效的源发行版,解决方案
  • 原文地址:https://www.cnblogs.com/8013-cmf/p/7727145.html
Copyright © 2020-2023  润新知