所以我设置了一个局部变量$ polls来包含一个JSON数组,但是当我在函数中执行变量的var_dump时,同一文件中的函数将返回NULL作为$ poll的值
$polls = json_decode(file_get_contents($lib_path . '/polls.json'), true);
var_dump($polls); //this returns the information within $polls correctly
function getPoll() {
var_dump($polls); //this returns NULL
}
我已经尝试(徒劳)使用全球'但是不应该将$民意调查轻松放在范围内?我已经检查过$ polls尚未在我正在使用的代码库中的任何其他地方定义。
答案 0 :(得分:4)
全局命名空间中的变量在函数内部不可用,除非您明确地这样做。有三种方法可以做到这一点:
将它们作为参数传递(推荐)
function getPoll($polls){
var_dump($polls);
}
使用global
关键字(强烈不推荐)
function getPoll(){
global $polls
var_dump($polls);
}
使用$GLOBALS
超全球(强烈不推荐)
function getPoll(){
$polls = $GLOBALS['polls'];
var_dump($polls);
}
答案 1 :(得分:1)
试试这个
$polls = json_decode(file_get_contents($lib_path . '/polls.json'), true);
var_dump($polls); //this returns the information within $polls correctly
function getPoll($p) {
var_dump($p); //this returns NULL
}
//call class
getPoll($poll);
我看到你没有通过参数传递任何东西
答案 2 :(得分:0)
将其作为参数传递:
function getPoll($polls) {
var_dump($polls);
}
getPoll($polls);
答案 3 :(得分:0)
您需要使用global
声明来从函数内部访问全局变量:
function getPoll() {
global $polls;
var_dump($polls); //this returns NULL
}