字符串操作:

  • 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:打印整个金字塔

   //打印整个金字塔
$n=3;
for ($i=1; $i <= $n; $i++) {
//在打印*之前 先打印空格
for ($j=1; $j<=$n-$i;$j++){
echo "&nbsp;";
}
//内层控制每层*的个数
for ($m=1; $m <=($i-1)*2+1 ; $m++) {
echo "*";
} echo "<br/>";
}
/*打印结果:
*
***
*****
*/

ex2:打印空心金字塔

     $n=8;
for ($i=1; $i <=$n ; $i++) { //判断层数
for ($m=0; $m <=$n-$i; $m++) { //金字塔前面的空格
echo "&nbsp;";
}
for ($j=1; $j <=($i*2)-1 ; $j++) //每层的个数
{
//判断第一层和最后一层全部打印
if ($i==1||$i==$n)
{
echo "*";
}else
{
//判断每层的第一个和最后一个打印*,其他输出空格
if ($j==1||$j==($i*2)-1)
{
echo "*";
}
else
{
echo "&nbsp;";
}
}
// echo "*";
}
echo "<br/>";
}
?>
/*
打印结果:
*
* *
* *
* *
* *
* *
* *
***************
*

ex3:简易计算器

 //ex2.php
<html>
</!DOCTYPE html>
<html>
<head>
<title>jisuanqi</title>
</head>
<body>
<form action="result.php" method="post">
<table width="300px" border="0">
<tr>
<td>第一个数:</td><td><input type="text" name="num1"/></td>
</tr>
<tr>
<td>第二个数:</td><td><input type="text" name="num2"/></td>
</tr>
<tr>
<td>运算符</td>
<td><select name="oper">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select></td>
</tr>
<tr >
<td colspan="2"><input type="submit" value="计算结果" /></td>
</tr>
</table>
</form>
</body>
</html>
//result.php
<?php
//接受用户从ex2.php提交的数据
//1.接受num1
$num1=$_REQUEST["num1"];
//2.接受num2
$num2=$_REQUEST["num2"];
//3.接受运算符
$oper=$_REQUEST["oper"];
$res=0;
switch ($oper) {
case '+':
$res=$num1+$num2;
echo "计算结果为:".$res;
break;
case '-':
$res=$num1-$num2;
echo "计算结果为:".$res;
break;
case '+':
case '*':
$res=$num1*$num2;
echo "计算结果为:".$res;
break;
case '/':
$res=$num1/$num2;
echo "计算结果为:".$res;
break;
default:
echo "你输入的运算符不对";
break;
}
?>

界面显示:

ex4:99乘法表

 <?php
//判断层数
for ($i=1; $i <=9 ; $i++) {
//每层所显示的内容
for ($m=1; $m <=9 ; $m++) {
if($i>=$m){
echo "$i*$m=".$m*$i."&nbsp;";
}
}
echo "<br/>";
}
?>
/*
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
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
*/

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

ex4.php代码如下:

 <!DOCTYPE html>
<html>
<head>
<title></title>
<!-- js代码。改变下拉值来改变所显示的图片 -->
<script language="javascript" type="text/javascript">
function mychange(obj) {
var val=obj.value;
var myimage=document.getElementById("myimg");
if (val=='jd') {
myimage.src="1.jpg";
}else if (val=="cz") {
myimage.src="thumbnail (2).jpg";
}else if (val=="b") {
myimage.src="thumbnail (3).jpg";
}
}
</script>
</head>
<body>
<form name="form" action="tijiao.php" method="post">
你出拳:
<!-- 为下拉框写一个onchange时间 -->
<select name="bs" onchange="mychange(this);">
<option value="jd">剪刀</option>
<option value="cz">锤子</option>
<option value="b">布</option>
</select>
<img src="thumbnail (4).jpg" id="myimg"/>
<br/>
<input type="submit" name="开始比赛">
</form>
</body>
</html>

result.php的代码如下:

 <?php
//获取下拉框所选的值
$result=$_REQUEST["bs"];
//产生随机数
$rd=rand(0,2);
switch ($result) {
case 'b':
if ($rd=="0") {
echo "你出的是".$result.",我出的是布"."<br/>";
echo "平手" ;
}elseif($rd=="1")
{
echo "你出的是".$result.",我出的是锤子"."<br/>";
echo "你赢了";
}else{
echo "你出的是".$result.",我出的是剪刀"."<br/>";
echo "你输了";
}
break;
case 'jd':
if ($rd=="0") {
echo "你出的是".$result.",我出的是布"."<br/>";
echo "你赢了" ;
}elseif($rd=="1")
{
echo "你出的是".$result.",我出的是锤子"."<br/>";
echo "你输了";
}else{
echo "你出的是".$result.",我出的是剪刀"."<br/>";
echo "平手";
}
break;
default:
if ($rd=="0") {
echo "你出的是".$result.",我出的是布"."<br/>";
echo "你输了" ;
}elseif($rd=="1")
{
echo "你出的是".$result.",我出的是锤子"."<br/>";
echo "平手";
}else{
echo "你出的是".$result.",我出的是剪刀"."<br/>";
echo "你赢了";
}
break;
}
?>
<!-- 注意:html代码需写在php代码外面 -->
<a href="ex4.php">返回测试页面</a>

结果:

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后面也可以跟数字,表示从第几层循环开始

     for ($i=0; $i <2 ; $i++) {
for ($j=0; $j <4; $j++) {
if ($j==2) {
continue 2;
}
echo '$i='.$i."<br/>";
}
}
/*
$i=0
$i=0
$i=1
$i=1
hello
*/

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

【八】php三大流程控制总结的更多相关文章

  1. php程序的三大流程控制

    php程序的三大流程控制 ①  顺序控制(从上到下.从左到右) ②分支控制 if(条件表达式){ //n多语句 }else if (条件表达式){ //n 多语句 }else if(条件表示式){ / ...

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

    字符串操作: trim:去除字符串开始位置和结束位置的空格 ltrim:去除开始处的空格 rtrim:去除结束处的空格 strtoupper:将字符串转换为大写 strtolower:将字符串转换为小 ...

  3. javase 基本运算符和三大流程

    范围:-(2 ^ 字节 X 8 - 1)~(2 ^ 字节 X 8 - 1)-  1 主要区别是数据大小范围: 1.  byte    一个字节    -128 ~ 127 2. short    两个 ...

  4. Java学习日记——基础篇(三-上)基本语法之运算符和流程控制

    运算符 算术运算符 听其名而知其意,就是用于计算的,java中常用的是: +   加 -    减 *    乘 /    除 %  取模,取余——%可以用来得到两个数相除的余数 小练习——写一个ja ...

  5. MySQL拓展 视图,触发器,事务,存储过程,内置函数,流程控制,索引,慢查询优化,数据库三大设计范式

    视图: 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图 create view tea ...

  6. swift_简单值 | 元祖 | 流程控制 | 字符串 | 集合

    //: Playground - noun: a place where people can play import Cocoa var str = "Hello, playground& ...

  7. Java 关键字、标识符、注释、常量与变量、数据类型,算术、赋值、比较、逻辑、位、三元运算符和流程控制、break、continue【3】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激.请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ ...

  8. GO語言基礎教程:流程控制

    在開始一個新的章節之前先來回顧上一篇文章的部份,首先我們來看這段代碼: package main import ( "fmt" ) func main(){ var x,y int ...

  9. core java 1~4(HelloWorld & 标识符|关键字|数据类型 & 表达式|流程控制 & 数组)

    MODULE 1 Java的编译和运行----------------------------编译:javac -d bin src\HelloWorld.java -d:指定编译后的class 文件 ...

随机推荐

  1. 201521123096《Java程序设计》第十四周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...

  2. 《Java从入门到放弃》JavaSE入门篇:练习——单身狗租赁系统

    今天,我们要玩个大的!!! 我们把之前使用数组做的这个单身狗系统改版成数据库版本,并且使用面向对象里面的一些简单思想.如果有不知道这个系统的看官,请跳转到目录页,然后再选择单身狗系统(数组版)先围观五 ...

  3. JavaScript中的ASCII碼轉換成字符的兩種方法

    方法一:轉義字符 \xxx:用十六進制的ASCII碼值轉換成字符. 方法二:String方法 String.fromCharCode(value): //用十進制的ASCII碼值轉換成字符. 舉例:結 ...

  4. React——props的使用以及propTypes

    组件的props是只读的,组件不能修改自己的props,在React中,组件可以接受任意的props,如函数,对象,基本类型以及react元素 一.props的使用 1.一些组件并不需要知道自己的ch ...

  5. [UIKit学习]00.关于前置知识(storyboard,UIViewController,类扩展,项目属性)

    storyboard文件的认识 用来描述软件界面 默认情况下,程序一启动就会加载Main.storyboard 加载storyboard时,会首先创建和显示箭头所指的控制器界面 IBAction和IB ...

  6. crypto加密

    /* hash.js */     var crypto = require('crypto'); module.exports = function(){      this.encode = fu ...

  7. 1001 数组中和等于K的数对 1002 数塔取数问题 1003 阶乘后面0的数量 1004 n^n的末位数字 1009 数字1的数量

    1001 数组中和等于K的数对 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K ...

  8. Python s12 Day3 笔记及作业

    1. Set集合 old_dict = { "#1":{ 'hostname':'c1', 'cpu_count':2, 'mem_capicity':16}, "#2& ...

  9. java基础知识及详细笔记

    第一章:初识java 1.1.java的概述 ü  什么是计算机程序:计算机按照某种顺序而完成的一系列有序指令的集合. ü  Java的作用:1:安装和运行本机上的桌面程序.2:通过浏览器访问面向in ...

  10. CentOS7 + Nginx1.13.5 + PHP7.1.10 + MySQL5.7.19 源码编译安装

    一.安装Nginx 1.安装依赖扩展 # yum -y install wget openssl* gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng ...