跨函数调用持久存储局部变量的值

news/2025/1/2 0:30:06/文章来源:https://www.cnblogs.com/xueshi/p/18639890

希望一个局部变量能够在函数调用之间保留它的值。
将变量声明为static

// 定义一个函数check_the_count,它接受一个参数$pitch,表示投球的结果。
function check_the_count($pitch){
// 使用static关键字定义两个静态变量$strikes和$balls,用于记录击球手的三振出局次数和获得保送(四球)的次数。
// 静态变量在函数多次调用之间保持其值。
static $strikes = 0;
static $balls = 0;

// 使用switch语句根据$pitch的值来决定执行哪段代码。
switch($pitch){case 'foul': // 如果投球结果为“犯规球”// 如果已经有两振,则不改变任何计数,直接跳出switch语句。// 注意:这里没有显式的break语句用于“犯规球”的情况,// 但在PHP中,如果case后面没有break,程序会继续执行下一个case的代码(fall-through行为),// 但在这里,由于“犯规球”后面紧跟的是“三振”的情况,而“三振”有一个break语句,// 所以这里的fall-through实际上不会影响逻辑。然而,为了代码的清晰性,最好加上一个break或注释说明。case 'strike': // 如果投球结果为“三振”$strikes++; // 三振次数加一break;case 'ball': // 如果投球结果为“好球”$balls++; // 好球次数加一break;
}// 检查是否达到三振出局的条件(三振)
if(3 == $strikes){$strikes = $balls = 0; // 重置三振和好球次数return 'strike out'; // 返回“三振出局”
}// 检查是否达到保送的条件(四球)
if(4 == $balls){$strikes = $balls = 0; // 重置三振和好球次数return 'walk'; // 返回“保送”
}// 如果既不是三振出局也不是保送,则返回“击球中”
return 'at bat';

}

// 定义一个数组$pitches,包含一系列投球结果。
$pitches = array('strike','ball','ball','strike','foul','ball','ball','strike');

// 定义一个空数组$what_happened,用于存储每次投球后的结果。
$what_happened = array();

// 遍历$pitches数组,对每个投球结果调用check_the_count函数,并将结果添加到$what_happened数组中。
// 同时,每次循环后打印$what_happened数组的内容,以及一个换行符,以便观察每次投球后的状态变化。
foreach($pitches as $pitch){
$what_happened[] = check_the_count($pitch);
print_r($what_happened); // 打印数组内容
print '
'; // 打印换行符,用于在网页上显示时换行
}

static变量可以在函数调用之间保留变量值,不过只是在一次脚本调用期间有效。如果
一个请求中访问了一个static变量,下一次请求同一个页面时这个变量并不会保留它的值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/861097.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从流量控制算法谈网络优化 – 从 CUBIC 到 BBRv2 算法

从流量控制算法谈网络优化 – 从 CUBIC 到 BBRv2 算法 by Lianghong Fei on 16 3月 2021 in Networking & Content Delivery Permalink Share 诞生于1974年的TCP协议(Transmission Control Protocol,传输控制协议)绝对算得上是最古老的网络协议之一,很可能是当今互联网…

深度解析Mamba与状态空间模型:一图带你轻松入门

1.概述 Transformer架构无疑是大型语言模型(LLMs)成功背后的核心动力。从开源的Mistral到封闭的ChatGPT,几乎所有主流的LLM都在使用这一架构。然而,随着技术的不断进步,研究者们已经开始探索新的架构,有望在未来挑战Transformer的地位。其中,Mamba作为一种状态空间模型,…

X.4 二维平面应力

X.4 二维平面应力 前言 嗯! 背景 目前为止,我们已经学习了一维梁的应力。 接下来,我们考虑一个二维的膜,它在遭受z轴方向作用时产生的应力和应变。 架子鼓的鼓膜就是一个很好的参考。 控制方程 ​​ 考虑对如图所示情况的控制方程,又名2D泊松方程(Poisson Equation): \[…

MP4视频分割、分差工具a MP4Box GUI-Yamb介绍

摘自:https://www.cnblogs.com/ciey/archive/2010/08/05/1792803.html Yamb - Yet Another MP4Box User Interface for Windows Users Yamb是MP4BOX的一个前端界面程序,省去了繁琐的MP4BOX命令行操作,只需通过程序向导就可轻松的完成合并、分割MP4的功能。 Yamb俗称大脚丫,…

wxGauge 改变颜色

wxWidgets 的进度条控件没有提供改变颜色的接口,在Windows中,我们实际上可以通过向控件发送消息来间接的实现这个功能 Windows自己的进度条控件有以下三种状态用类似下面的代码即可控制进度条显示绿红黄三种颜色 SendMessage(m_gauge1->GetHWND(), PBM_SETSTATE, PBST_NOR…

第10章 LINQ to XML

第10章 LINQ to XML 10.1 架构概述——DOM 和 LINQ to XML 的 DOM XML 文档可以用一棵对象树完整的表示,这称为“文档对象模型(document object model)” LINQ to XML 由两部分组成:XML DOM,简称为 X-DOM 大约 10 个查询运算符LINQ 也可以用于查询 W3C 标准的旧 DOM,不过…

不同充电协议的 iPhone 无线充电器对比分析 All In One

不同充电协议的 iPhone 无线充电器对比分析 All In One不同充电协议的 iPhone 无线充电器对比分析 All In OneiPhone 12 Pro 使用 7.5W 无线充电器,从 0% ~ 100% 充满需要多少时间MagSafe 充电器 RMB 329https://www.apple.com.cn/shop/product/MWQX3CH/AMagicSafe iPhone 16…

第8章 LINQ 查询

第8章 LINQ 查询 8.2 流式语法 8.2.2 使用 Lambda 表达式 常用运算符 Where() 筛选器 Order() 排序器 Select() 映射器 Take() 获取前 x 个元素 Skip() 跳过前 x 个元素 Reverse() 反转所有元素 First() 获取第一个元素 Last() 获取最后一个元素 ElementAt() 获取第 x 个元素 C…

团队作业4—项目冲刺

这个作业属于哪个课程 计科22级34班这个作业要求在哪里 作业要求这个作业的目标 项目冲刺,进行为期7天的敏捷开发团队成员:姓名 学号张嘉敏 3222004893张嘉乐 3122004544赵衍锴 3122004502唐学鹏 3119005703各个成员在Alpha阶段认领的任务成员 任务唐学鹏 需求分析,调整系统…

又写了一个大一新生的期末作业

#include <stdio.h> #include <string.h> #include <math.h>// 定义学生结构体 struct Student {char id[20]; // 学号char className[20]; // 班级char name[20]; // 姓名int startHour; // 上机开始时间(小时)int startMinute; // 上机…

word中自带插入公式,实现换行和对齐

word自带公式输入很是难用,尤其是不能在公式内回车换行。网上有方法说用(shift+回车)方法,亲测不可用。通过多方查找资料,终于找到如何实现word自带公式的换行和对齐的解决方法。先看看最终效果。首先,我们需要观测到word公式输入的模式,在插入公式操作中,公式工具左上…

INFINI Console 指标采集优化

前言 在 Easysearch / Elasticsearch / Opensearch 管理系统中,对于不同集群不同指标数据进行采集是一个常规任务。但是采集过程中不仅会对采集系统 CPU 和访问性能造成不少压力,也会对 Easysearch / Elasticsearch / Opensearch 集群造成资源消耗,从而影响集群本身的健康运…