PHP-将参数作为数组传递到函数中,而不必定义为参数
是否可以在每次使用函数时将变量(带有数组数据)传递到函数中,而不必将其用作参数 我的情况是,我已经为表单生成了UI元素。现在,如果我定义输入的名称,我会得到一个按设计工作的字段,但是每次我还必须传递两个变量 定义的功能: 理想情况下,我希望在函数中传递PHP-将参数作为数组传递到函数中,而不必定义为参数,php,function,function-parameter,Php,Function,Function Parameter,是否可以在每次使用函数时将变量(带有数组数据)传递到函数中,而不必将其用作参数 我的情况是,我已经为表单生成了UI元素。现在,如果我定义输入的名称,我会得到一个按设计工作的字段,但是每次我还必须传递两个变量 定义的功能: 理想情况下,我希望在函数中传递$game和$answer变量,以确定依赖于它们的内容。我使用的是CodeIgniter,$game变量在页面加载时传递给视图。只有在传递或定义了$game时,才能在函数中定义$answer变量 功能的当前使用情况: 功能的理想使用(使用更简单):
$game
和$answer
变量,以确定依赖于它们的内容。我使用的是CodeIgniter,$game
变量在页面加载时传递给视图。只有在传递或定义了$game
时,才能在函数中定义$answer
变量
功能的当前使用情况:
功能的理想使用(使用更简单):
如果还有什么需要定义的,请告诉我,我不想显示所有代码,因为有将近100行代码。为此使用闭包将是一个很好的选择,特别是“使用”构造
#!/usr/bin/env php
<?php
function getDecision($name, $game, $answer) {
echo "$name : $game : $answer \n";
}
function main() {
$my_game = "my game";
$my_answer = "my answer";
$getDecisionCaller = function($name) use ($my_game, $my_answer) {
getDecision($name, $my_game, $my_answer);
};
// Don't really need the line below, can simply use: $getDecisionCaller('company 0');
getDecision('company 0', $my_game, $my_answer);
$getDecisionCaller('company 1');
$getDecisionCaller('company 2');
}
main();
?>
在上面的代码中,我定义了getDecision($name,$game,$answer),它只打印发送的值。
然后,我定义了getDecisionCaller,它只接受$name作为参数,但使用$my_game、$my_answer的值
注意,“use”构造需要绑定变量,不能通过字符串设置值。它将给出错误-“Parse error:Parse error,应为”和“”或“variable(T_variable)”
你不能做下面的事
$getDecisionCaller = function($name) use ('a game', 'an answer') {
getDecision($name, $my_game, $my_answer);
};
希望这会有所帮助:)您可以使用全局变量来实现这一点。例如:
<?php
$array = array();
function test() {
global $array;
print_r($array);
}
function main() {
test();
}
main();
?>
但是,应该避免使用。如果您不提供$game,它如何知道它的价值?是否有默认值?
#!/usr/bin/env php
<?php
function getDecision($name, $game, $answer) {
echo "$name : $game : $answer \n";
}
function main() {
$my_game = "my game";
$my_answer = "my answer";
$getDecisionCaller = function($name) use ($my_game, $my_answer) {
getDecision($name, $my_game, $my_answer);
};
// Don't really need the line below, can simply use: $getDecisionCaller('company 0');
getDecision('company 0', $my_game, $my_answer);
$getDecisionCaller('company 1');
$getDecisionCaller('company 2');
}
main();
?>
company 0 : my game : my answer
company 1 : my game : my answer
company 2 : my game : my answer
$getDecisionCaller = function($name) use ('a game', 'an answer') {
getDecision($name, $my_game, $my_answer);
};
<?php
$array = array();
function test() {
global $array;
print_r($array);
}
function main() {
test();
}
main();
?>