<?php function STR2VAR($strs){
$a = explode(',',$strs);
foreach($a as $key) {
$$key = $_GET[$key];
}
}
STR2VAR('exam1,exam2,exam3');
echo $exam1;
?>
这不起作用为什么?给出未定义的考试 1 如何在功能中定义 web 到外边使用
正如我在评论中告诉您的,这是一个变量范围问题,您在函数中声明和使用的变量仅存在于该函数中,为了使变量存在于该函数之外,您必须在其声明之前使用global
这是您修复代码的方式:
function STR2VAR($strs){
$a = explode(',',$strs);
foreach($a as $key) {
global $$key;
$$key = 'test';
}
}
STR2VAR('exam1,exam2,exam3');
echo $exam1;
执行函数后,变量变量超出范围,因此出现分段错误/空引用。声明您的$$
变量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'];
?>