循环获取另一个php变量,通过引用将多个变量传递给foreach循环(php)
场景/问题隔离
:假设我的程序使用多个变量。在程序开始时,我希望通过一个代码很少的通用函数同时操作许多变量,然后在流程的后面,在特定函数中只使用一些独特的变量。
问题
:如何通过引用foreach循环传递多个变量?或者是否有更好的/可选的方法来循环使用多个确定的变量?
与主题相关的帖子
但没有解决我的问题:
背景(相关人员):
我有一个使用getopts的命令行程序
http://hash-bang.net/2008/12/missing-php-functions-getopts/
为了得到各种各样的参数,我得到了大约20个变量。我想运行所有变量,这些变量包含文件路径(大约10个),一次通过“常规”函数reduceHierarchyDots()(而不是调用函数10次)。
/// The "general" function:
function reduceHierarchyDots ($file) {
while (preg_match('|./\.{2}/|', $file)) { $file = preg_replace('|/([^/]+)/\.{2}/|', '/', $file, 1); }
$file = preg_replace('|(/(\./)+)|', '/', $file);
$file = preg_replace('|^(\./)+|', '', $file);
return $file;
}
function reduceHierarchyDotsRef (&$file) {
while (preg_match('|./\.{2}/|', $file)) { $file = preg_replace('|/([^/]+)/\.{2}/|', '/', $file, 1); }
$file = preg_replace('|(/(\./)+)|', '/', $file);
$file = preg_replace('|^(\./)+|', '', $file);
}
/// The "many" variables:
$x = "something";
$y = 123;
$y = array ("a", "B", 3);
$a = "/Users/jondoe/Desktop/source/0.txt";
$b = "/Users/jondoe/Desktop/source/../1.txt";
$c = "/Users/jondoe/Desktop/source/../../2.txt";
$arrOne = array (
"v1" => "/some/thing/../1.pdf",
"v2" => "/some/thing/../../2.pdf",
"v3" => "/some/thing/../../../3.pdf"
);
$arrTwo = array (
"./1.doc",
"/so.me/.thing/ends./././2.doc",
"./././3.doc"
);
/// At the beginning I want to run multiple determined variables through a "general" function:
/// Debugging: Variables BEFORE the manipulation:
echo("BEFORE:\n"); var_dump($b, $arrOne["v2"], $arrTwo[2]); echo("\n");
/// Method works, but is long! (1 line/statement per function call)
reduceHierarchyDotsRef($b);
reduceHierarchyDotsRef($arrOne["v2"]);
reduceHierarchyDotsRef($arrTwo[2]);
/// Hence, I'd like to pass all variables by reference at once to a foreach loop:
These cause: Parse error: syntax error, unexpected '&':
// foreach ( array($b, $arrOne["v2"], $arrTwo[2] ) as &$file) { $file = reduceHierarchyDots($file); }
// foreach (array(&$b, &$arrOne["v2"], &$arrTwo[2] ) as &$file) { $file = reduceHierarchyDotsRef($file); }
These have no effect on the intended variables:
// foreach (array(&$b, &$arrOne["v2"], &$arrTwo[2] ) as $file) { $file = reduceHierarchyDots($file); }
// foreach (array(&$b, &$arrOne["v2"], &$arrTwo[2] ) as $file) { $file = reduceHierarchyDotsRef($file); }
/// Debugging: Variables AFTER the manipulation:
echo("AFTER:\n"); var_dump($b, $arrOne["v2"], $arrTwo[2]);
/// After the "general" function ran over various variables, the more specific actions happen: ...
?>
循环获取另一个php变量,通过引用将多个变量传递给foreach循环(php)相关推荐
- python两层循环 循环完整体一个_Python学习教程(Python学习路线):Python编写循环的两个建议...
原标题:Python学习教程(Python学习路线):Python编写循环的两个建议 Python学习教程(Python学习路线):给大家总结了两个Python编写循环的建议 循环是一种常用的程序控制 ...
- python中的变量的引用_python中的变量引用小结
python的变量都可以看成是内存中某个对象的引用.(变量指向该内存地址存储的值) 1.python中的可更改对象和不可更改对象 python中的对象可以分为可更改(mutable)对象与不可更改(i ...
- jq循环获取table中各td中input框的内容 ajax传到后台
页面图: (点击确定后,将各td内容获取到,然后ajax传出,php接收然后传入数据库) 1.先放html的页面代码(用了bookstrap框架): <table class="tab ...
- php中的for循环最多循环多少次,php - 我在PHP中有2次时间,如何运行foreach循环来遍历所有这些日子? (最后24小时同时循环1小时!) - 堆栈内存溢出...
这是此项目可能需要的php文档列表: 以下是示例代码,将在一小时内递减最后24小时: $timenow = time(); for ($i = 0; $i < 24; $i ++) { $ago ...
- Jmeter循环获取JDBC查询结果及断言数据库查询结果
Jmeter连接数据库方法可见此篇文章: Jmeter连接MySQL数据库操作步骤及JDBC各种报错连接失败的原因一.操作步骤1.线程组→配置元件→JDBC Connection Configurat ...
- python变量回收_Python变量的引用、拷贝和回收机制
1.Python中变量的引用 Python中的变量都是指针,都是某个内存对象的引用. python不允许程序员选择采用传值还是传引用.Python参数传递采用的肯定是"传对象引用" ...
- foreach循环详细解析流程
foreach循环 感觉好的请转发,点赞.谢谢 1.foreach循环具有一个很显著的特点就是索引永远不会溢出. 解决了for,while循环中容易溢出导致程序奔溃的作用. 2.foreach语句是c ...
- c#foreach循环用法详解
foreach 语句经常与数组一起使用,在 C# 语言中提供了 foreach 语句遍历数组中的元素,具体的语法形式 如下. foreach(数据类型 变量名 in 数组名) {//语句块: } C# ...
- oracle for循环遍历数组,foreach循环
Smarty foreach控制循环次数 1.在 smarty 中数组是经常会用到的,循环遍历数组用 section 或者 foreach ,如何得到数组长度或者判断一个数组个数呢?可以用{$arra ...
最新文章
- 最全面的百度地图JavaScript离线版开发
- caffe anaconda3 Python.h: 没有那个文件或目录
- 在什么场景下该使用JMX,如何使用,会带来什么好处,这种场景下有哪些替代方案?...
- 信息学奥赛C++语言:斗转星移
- 库克警告员工不要泄露公司信息:将全力追查
- SAP License:成本要素的拉入拉出
- 【机器学习】Logistic Regression逻辑回归原理与java实现
- C# WinForm 开软件窗口居中 任意时刻窗体居中
- 毕设题目:Matlab水果识别分级
- cnpack导致view快捷键失灵。
- FPGA信号处理系列文章——卷积编码与维特比译码
- 1和4互素吗_互素是什么意思?1~10中与10互素的数有多少个
- 笔记本电脑怎么关闭触摸板
- 计算机无法安装蓝牙驱动,电脑没有蓝牙驱动怎么安装具体方法
- MySQL使用HQL语句实现按中文拼音排序
- Airtest框架和Poco框架常见问题
- 零基础学习软件测试难不难?
- UDT的连接建立和释放
- 计算机安全模式启动时蓝屏,电脑蓝屏开机按f8进入安全模式后还是蓝屏的,怎么处理?...
- 小红书内容传播之品牌推广,干货分析
热门文章
- Oracle 19c RAC打补丁过程避坑指南
- 需求蔓延,常见但不正常,教你如何破
- “元宇宙”究竟是什么
- GaussDB(for MySQL) HTAP只读分析特性详解
- 如何支撑企业快速构建数字孪生体
- 华为全栈AI技术干货深度解析,解锁企业AI开发“秘籍”
- 能够让机器狗学会灭火, ModelArts3.0让AI离我们又近一步
- 【华为云技术分享】【极客思考】设计模式:你确定你真的理解了单例模式吗?
- 【直播分享】实现LOL小地图英雄头像分析案例【华为云分享】
- #华为云·寻找黑马程序员#【代码重构之路】我是如何将8行代码缩减成1行的