我正在编程一个应用程序(php),它需要很长一段类似但不同的功能,这些功能正在被一组键所调用:

$functions = [

"do this" => function() {

// does this

},

"do that" => function() {

// does that

}

]

etc.

我已经选择将类似的函数放在一个数组中,因为它们不够相似 – 用一个充满条件语句的大函数获得相同的结果不会起作用.而且我只需要通过键来调用它们,例如:

$program = ["do this", "do that", "do this"];

foreach ($program as $k => $v) {

$functions[$v]();

}

这是这个函数数组结构引起了许多问题,例如我在另外一个数组函数中很难从一个数组函数调用.这不行:

"do that" => function() {

$functions["do this"]();

}

也不是:

"do that" => function() {

global $functions;

$functions["do this"]();

}

或这个:

"do that" => function($functions) {

$functions["do this"]();

}

$functions["do that"]($functions);

我想我可以有一个巨大的功能与一个长的switch语句:

function similar_functions($key) {

switch ($key) {

case "do this":

// does this

break;

case "do that":

// does that

break;

}

}

但这不是很好的做法.或者也许是

那么我的替代品是什么?我应该用开关结构去吗?还是还有另一个更好的解决方案?

php什么是阵列,php – 功能阵列的替代方法?相关推荐

  1. 婴儿fNIRS数据的固定阵列和功能兴趣通道的方法比较

    导读 功能性近红外光谱(fNIRS)越来越多地用于研究婴儿的大脑功能,但婴儿fNIRS数据分析技术的发展和标准化并没有跟上其他技术进步的步伐.本研究使用不同的分析方法量化和比较了婴儿的fNIRS数据[ ...

  2. 在Altium Designer中利用阵列粘贴功能快速绘制元器件封装

    在AD中手动绘制元器件封装是经常会有的事情,系统自带的阵列粘贴功能在元器件封装绘制时可以极大地提高工作效率,现在就来演示一下如何使用阵列粘贴功能.首先新建一个元器件封装库. 工具栏中选择File -- ...

  3. raid卡组不同raid_乐扩IO-PCE9230-4IR阵列卡组阵列教程

    乐扩IO-PCE9230-4IR阵列卡组阵列教程 第一部分: 硬件安装:关闭电脑电源 拔掉电源线,取下机箱盖: 在主板上找一个PCI Express X4,X8,或x16的插槽: 然后将阵列卡小心的插 ...

  4. DeOccNet:国防科大提出阵列相机去除前景遮挡成像新方法

    点击我爱计算机视觉标星,更快获取CVML新技术 阵列相机可以从不同的视角记录当前场景,并对场景的结构进行解析,因而在战场侦察.公安监视等领域具有巨大的应用潜力. 近日,国防科技大学研究团队提出阵列相机 ...

  5. 线性阵列、圆周阵列、曲线阵列

    线性阵列 圆周阵列 第一种方法 利用基准轴进行圆周阵列 第二种方法 利用圆柱面进行圆周阵列 第三种方法 利用圆线进行圆周阵列 曲线阵列 合并多条曲线的方法 转载于:https://www.cnblog ...

  6. 《阵列信号处理及MATLAB实现》阵列响应矩阵(均匀线阵、均匀圆阵、L型阵列、平面阵列和任意阵列)

    2.7  阵列响应矢量/矩阵 常用的阵列形式包括均匀线阵.均匀圆阵.L型阵列.平面阵列和任意阵列等. 1.均匀线阵 假设接收信号满足窄带条件,即信号经过阵列长度所需的时间应远远小于信号的相干时间,信号 ...

  7. 相控阵天线(七):常规平面阵列天线分布(矩形阵列、三角栅格、六边形阵列和圆形阵列)

    目录 简介 矩形栅格平面阵列 三角栅格平面阵列 六边形阵列 圆形平面阵列 空心平面阵列 简介 常见的平面阵有一些基本类型,按照栅格形式可以进行以下划分:矩形栅格.三角形栅格.同心圆环和椭圆环栅格等:按 ...

  8. 什么是微波天线阵列及微波天线阵列类型

    微波天线阵列,也可称为相控阵列,是由两个或更多个天线组成的一组天线.这些天线通过将信号相互组合,从而实现比单个天线更高的性能.天线阵列可作用提高整体总增益,实现分集接收,抵消干扰,调至特定朝向,测量输 ...

  9. raid配置ssd为缓存_一种基于SSDRAID阵列的多级缓存及缓存方法与流程

    本发明属于固态硬盘存储技术领域,更具体地,涉及一种基于SSD RAID阵列的多级缓存及缓存方法. 背景技术: 基于闪存的固态磁盘(Solid State Drives,SSD)以其优异的性能.非异失和 ...

最新文章

  1. 10个你必须知道的jQueryMobile代码片段(转)
  2. docker 删除镜像报错 image is referenced in multiple repositories
  3. git 撤销全部的commit_恢复git撤销commit的代码
  4. 零基础python入门书籍-零基础学Python,不容错过的入门书籍
  5. JS 04 Date_Math_String_Object
  6. Android高仿大众点评(带服务端)
  7. 2000服务器文件共享,Win2000 Server实现对共享文件的监控
  8. .rdlc 文件设置方向_在Word里面怎么设置把字竖着打出来?
  9. thymeleaf引用html_SpringBoot+Thymeleaf实现html文件引入(类似include功能)_html/css_WEB-ITnose...
  10. 数据库开源 | 200人中英文混说数据库开放申请
  11. [ 原创 ]学习笔记-安卓虚拟机终于达到最佳状态了
  12. init与clinit 与 类的初始化顺序
  13. Android开发学习笔记(11):NDK与Cygwin配置手顺
  14. SQL中内连接和外连接的区别
  15. 怎么按要求对PDF文件进行拆分?PDF拆分教程来了
  16. JavaScript——用键盘wasd控制div移动
  17. ionic android 证书,Ionic 5/Angular Android和iOS 指纹认证
  18. edittext 软键盘上方_Android 软键盘的全面解析,让你不再怕控件被遮盖
  19. php layui弹出修改功能,非常好用的弹出层 layer,常用功能demo,快速上手!
  20. HDU5128The E-pang Palace(计算几何暴力枚举)

热门文章

  1. 文献学习(part10)--元自步学习
  2. 第三次学JAVA再学不好就吃翔(part3)--基础语法之常量
  3. 适合 Kubernetes 初学者的一些实战练习(一)
  4. SAP 电商云 Spartacus UI B2B checkout 点击 Continue 不能跳转到下一页面
  5. SAP 电商云 Spartacus UI 如何自定义 SeoMetaService
  6. iframe 在 SAP 三款产品中的三个应用场景
  7. 如何修复 SAP UI5 aggregation with cardinality 0..1 相关的错误消息
  8. 使用 ABAP 代码向百度网站发起请求并收到回应
  9. Angular 路由的一个问题,以及解决方案
  10. SAP Cloud Application Programming bookshop 例子的 Fiori Preview