PHP可以';t检索$\u获取变量
我正在尝试建立一个简单的数据库搜索页面,这是一个帮助我学习的个人项目。我将构建一个表单,搜索我的MTG卡集合(非常大)。我已经建立了数据库,并且可以查询。在我的学习之地之旅中,我碰壁了。这堵墙的事实是,我无法获取$get variable来重新分配给变量以供进一步使用。为了方便起见,我已经将代码缩减为一个变量,甚至在这个简单的代码上也可以实现任何功能。这伤了我那粘糊糊的学生的大脑==PHP可以';t检索$\u获取变量,php,html,mysql,Php,Html,Mysql,我正在尝试建立一个简单的数据库搜索页面,这是一个帮助我学习的个人项目。我将构建一个表单,搜索我的MTG卡集合(非常大)。我已经建立了数据库,并且可以查询。在我的学习之地之旅中,我碰壁了。这堵墙的事实是,我无法获取$get variable来重新分配给变量以供进一步使用。为了方便起见,我已经将代码缩减为一个变量,甚至在这个简单的代码上也可以实现任何功能。这伤了我那粘糊糊的学生的大脑== 函数搜索\u mtg($\u get){ $name=$_GET[“name”]; } 回显“直接-->”$_获
函数搜索\u mtg($\u get){
$name=$_GET[“name”];
}
回显“直接-->”$_获取[“名称”]。“
”;
回显“重新分配-->”$名称
直接呼叫打印的钥匙很好。重新分配的变量不包含任何内容,我只是不明白为什么
如果有帮助的话,这是(极其简化的)表单
名称:
输入类型=“提交”>
如果我不能通过一个变量,我就不希望继续这个项目,因为在你的代码中你永远不会调用
search\u mtg
,所以它永远不会执行,也永远不会给$name
赋值。更重要的是,即使它确实执行了,$name
在执行后超出了范围,因此也不会打印所谓的重新分配变量
您是否对代码进行了过多的裁剪,还是确实如此?函数搜索\u mtg($val){
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");
//您不能在这里定义变量$name并在作用域之外使用它,您必须返回,除非您使用'global',这不是一个好的做法
return$_GET[$val];
}
回显“直接-->”$_获取[“名称”]。“
”;
回显“重新分配-->”。搜索(名称);
坏习惯,不要做下面的练习
function search_mtg($val) {
global $name;
$name = $_GET[$val];
}
echo "Directly -->" . $_GET["name"] . "<br>";
search_mtg("name");
echo "Reassigned -->" . $name;
函数搜索\u mtg($val){
全球$名称;
$name=$_GET[$val];
}
回显“直接-->”$_获取[“名称”]。“
”;
搜索(名称);
回显“重新分配-->”$名称
您有多个概念/逻辑错误:
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;
你真的在某处调用
search\u mtg
?这是设置$name
值的唯一方法。$name
仅在函数的作用域内,您不会从外部访问它。建议您接受对您帮助最大的答案,这就是它的工作原理;)那些元素没有被修剪,我甚至没有意识到我需要调用它;p(noob错误)我还想知道,将所有这些放在一个文件中并使用$\u PHP\u SELF会更有效吗,还是模块化是一种更好的做法?这对我来说绝对有效,并且重新分配进行得完美无瑕,谢谢你,先生:)我看到我在这个项目上比我应该咬的要多,谢谢你指出这个问题,多亏了你们,我学得很快:)
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;