gpt4 book ai didi

php - 如何从另一个函数获取变量

转载 作者:可可西里 更新时间:2023-11-01 00:17:55 26 4
gpt4 key购买 nike

我是 PHP 的新手,我正在尝试创建一个与 amazon 和 ebay 的网络混搭。我的问题是我有一个名为“printCategoryItems()”的函数,它设置了一个名为 $keyword 的变量。我想在代码的其他地方使用这个变量,但我无法让它工作。例如,


<?php
function printCategoryItems(){
if(isset($_GET['keyword'])){
$keyword = $_GET['keyword'];
...
}
}
...

$query = $keyword;

...

这是我尝试做的事情,但我最终得到关键字 undefined variable 错误。有没有办法让我做我想做的事?

提前感谢您的帮助。

(只有Java编程经验)

最佳答案

您可以使用 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 superglobal array :

function printCategoryItems() {
if(isset($_GET['keyword'])){
$GLOBALS['keywords'] = $_GET['keyword'];
}
}

printCategoryItems();
var_dump($GLOBALS['keywords']);

在这里,不再需要 global 关键字。


最后,您应该阅读 PHP 文档——尤其是 the part about Functions .

关于php - 如何从另一个函数获取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2296156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com