<?php function STR2VAR($strs){
$a = explode(',',$strs);
foreach($a as $key) {
$$key = $_GET[$key];
}
}
STR2VAR('exam1,exam2,exam3');
echo $exam1;
?>
这不起作用为什么?给未定义的考试1 web如何使用
定义功能答案 0 :(得分:0)
正如我在评论中告诉你的那样,这是一个变量范围问题,你声明并使用到函数中的变量只存在于该函数中,为了使变量在该函数之外生效,你必须在它的声明之前与global
这是您修复代码的方法:
function STR2VAR($strs){
$a = explode(',',$strs);
foreach($a as $key) {
global $$key;
$$key = 'test';
}
}
STR2VAR('exam1,exam2,exam3');
echo $exam1;
答案 1 :(得分:-2)
执行函数后,变量变量超出范围,因此分段错误/空引用。声明您的$$
变量global
或使用现有数组进行分配。
示例修复:
$my_array = array();
function STR2VAR($strs) {
global $my_array;
$a = explode(',',$strs);
foreach($a as $key) {
$my_array[$key] = $_GET[$key];
}
}
STR2VAR('exam1,exam2,exam3');
echo $my_array['exam1'];
&GT;