我正在尝试构建一个简单的数据库搜索页面,这是一个帮助我学习的个人项目。我将构建一个搜索我的MTG卡集合的表单(非常大)。我有数据库内置,可查询。在我通过学习土地的旅行中,我撞墙了。这个墙是我无法获得$ GET变量来重新分配给变量以供进一步使用的事实。为了方便起见,我已经将我的代码修剪为一个变量,即使在这个简单的简单代码上也能得到任何结果。它会伤害我那柔软的学生大脑= =
function search_mtg($_get) {
$name = $_GET["name"];
}
echo "Directly -->" . $_GET["name"] . "<br>";
echo "Reassigned -->" . $name;
直接调用打印密钥就好了。 。重新分配的变量包含NOTHING,我只是不明白为什么。
如果它有帮助,这是(非常简化)的形式。
<form action= "testResult.php" method="get">
Name: <input type="text" name="name"><br>
input type="submit">
</form>
如果我无法通过一个变量,我不能希望继续这个项目T_T
答案 0 :(得分:3)
您有多个概念/逻辑错误:
function search_mtg($_get) {
^^^^^---- do NOT redefine the superglobal variables.
even though variables are case sensitive, don't re-use
a superglobal name, even if _get is not the same as _GET
^^^^^^^^^^---you never call this function
$name = $_GET["name"];
^^^^^---- never gets returned
}
echo "Reassigned -->" . $name;
^^^^^---never gets defined
你至少想要更像这样的东西:
function search_mtg() {
return $_GET['name'];
}
$name = search_mtg();
echo $name;
答案 1 :(得分:2)
在您的代码中,您永远不会调用search_mtg
,因此它永远不会执行,也永远不会向$name
分配任何内容。更重要的是,即使执行执行,$name
在执行后超出了范围,因此也不会打印所谓的重新分配的变量。
您是否过多地修改了代码,或者确实是这样?
答案 2 :(得分:0)
function search_mtg($val) {
//You can't define a variable here $name and use it outside the scope, you have to return, unless you use `global` which is not a good practice
return $_GET[$val];
}
echo "Directly -->" . $_GET["name"] . "<br>";
echo "Reassigned -->" . search_mtg("name");
不良做法,请勿执行以下操作
function search_mtg($val) {
global $name;
$name = $_GET[$val];
}
echo "Directly -->" . $_GET["name"] . "<br>";
search_mtg("name");
echo "Reassigned -->" . $name;