您可以global
在函数中使用关键字,因此函数$keywords
内部指的是$keywords
函数外部:
function printCategoryItems() {
global $keyword;
if(isset($_GET['keyword'])){
$keyword = $_GET['keyword'];
}
}
printCategoryItems();
var_dump($keyword);
这是因为函数内部的变量属于函数的局部作用域,而不是全局作用域(我很久没有做过任何 JAVA,但我认为在 JAVA 中是一样的:在函数内部声明的变量从该函数外部看不到)。
但是使用全局变量通常不是一个好主意……更好的解决方案是让您的函数return
获取数据;例如 :
function printCategoryItems() {
if(isset($_GET['keyword'])){
return $_GET['keyword'];
}
}
$keyword = printCategoryItems();
var_dump($keyword);
作为一个半边注:另一个解决方案,仍然使用全局变量(再次不是一个好主意)将使用$GLOBALS
超全局数组:
function printCategoryItems() {
if(isset($_GET['keyword'])){
$GLOBALS['keywords'] = $_GET['keyword'];
}
}
printCategoryItems();
var_dump($GLOBALS['keywords']);
在这里,不再需要global
关键字。
最后,您应该阅读 PHP 文档——尤其是关于 Functions 的部分。