问题描述
我刚刚将我的 MAMP 更新到 PHP 8,并且正在尝试将我的设置迁移到它。在我网站的搜索栏中,它说:
警告:未定义的变量 $_GET_GET
在线 968
警告:尝试访问数组
这是我使用的代码:
<input id="search" type="search" class="form-control" placeholder="Find articles" value="<?=$_GET_GET['q'];?>"/>
它适用于以前的版本,但不知道为什么它不适用于 PHP8,我猜是因为新的更新但找不到修复它的方法。
更新:我尝试了 $_GET 而不是 $_GET_GET 并且它显示了
警告:未定义的数组键。这是搜索栏的代码:
<div class="col-md-7">
<div class="row">
<input id="search" type="search" class="form-control" placeholder="Find articles" value="<?=$_GET['q'];?>"/>
<button id="searchButton" type="button"></button>
</div>
<div class="row">
<p class="smallHint"><small>Hint: Separate phrases with commas (exploring computer science,high school,2016)</small></p>
</div>
</div>
解决方法
$_GET 是一个变量,包含发送到服务器的 GET 参数。根据错误,$_GET_GET
不存在,因此您的修复方法可能是:
<input id="search" type="search" class="form-control" placeholder="Find articles" value="<?=(isset($_GET['q']) ? $_GET['q'] : 'somedefault');?>"/>
如果您确实打算使用 $_GET_GET
,那么由于某种原因它没有正确初始化。
编辑:
评论部分指出,在 PHP 7 中这个问题引发了一个通知,而在 PHP 8 中它引发了一个警告。
,变量是 $_GET 而不是 $_GET_GET