似乎无法使这项工作成功。
我想让下面的数组可用于第二个函数,但它总是空的
主要代码是:
function GenerateSitemap($params = array()) {
$array = extract(shortcode_atts(array(
'title' => 'Site map',
'id' => 'sitemap',
'depth' => 2
), $params));
global $array;
}
function secondfunction()
{
global $array;
print $title;
// this function throws an error and can't access the $title key from the first function
}
GenerateSitemap()
secondfunction()
我想在第二个功能中使用标题, id 或深度 KEYS。他们只是空出来并抛出错误
答案 0 :(得分:1)
“变量的范围是定义它的上下文。”
http://us3.php.net/language.variables.scope.php
您需要在函数外定义变量(至少最初):
$array = array();
function GenerateSitemap($params = array()) {
global $array;
$array = extract(shortcode_atts(array(
'title' => 'Site map',
'id' => 'sitemap',
'depth' => 2
), $params));
}
function SecondFunction() {
global $array;
...
}
答案 1 :(得分:0)
在函数内部使用变量之前,需要将变量声明为global
,否则会隐式创建局部变量。
function myFunc() {
global $myVar;
$myVar = 'Hello World';
}
myFunc();
print_r($myVar); // 'Hello World'
你实际上不必在globalscope中最初声明它,你不会收到通知/警告/错误,尽管这样做显然是好习惯。 (虽然如果良好实践是目标,那么你可能不应该开始使用全局变量。)