我试图在php中将url作为url参数传递,但当我try 获取此参数时,什么也得不到.

我正在使用以下url表单:

http://localhost/dispatch.php?link=www.google.com

我正在努力解决这个问题:

$_GET['link'];

但什么也没有回来.有什么问题吗?

推荐答案

$_GET不是一个函数或语言构造,它只是一个变量(数组).try :

<?php
echo $_GET['link'];

特别是,它是一个superglobal:一个内置变量,由PHP填充,在所有范围内都可用(您可以在不使用global关键字的函数中使用它).

由于变量可能不存在,您可以(并且应该)确保代码不会触发以下通知:

<?php
if (isset($_GET['link'])) {
    echo $_GET['link'];
} else {
    // Fallback behaviour goes here
}

或者,如果您想跳过手动索引判断,并可能添加进一步的验证,您可以使用filter扩展:

<?php
echo filter_input(INPUT_GET, 'link', FILTER_SANITIZE_URL);

最后但并非最不重要的一点是,您可以使用null coalescing operator(从PHP/7.0开始提供)来处理缺少的参数:

echo $_GET['link'] ?? 'Fallback value';

Php相关问答推荐

相同的数组(一个来自func_get_args(),另一个显式构建)在用作参数时并不相同

在AJX请求中使用简写后,FormData出现非法调用错误

免费送货柜台,考虑到折扣码

如果为布尔值,则 for each 循环重新启动

升级到PHP 8.2后无法删除cURL Cookie文件

为什么WooCommerce的动作钩子';woocommerce_checkout_update_order_review';包含旧信息?

更改WooCommerce checkout 中的错误消息以获得不可用的送货方式

ANTLR4-lexer如何消耗更多的 token 并停止现有规则?

dyld[45923]:未加载库:/usr/local/opt/libavif/lib/libavif.15dylib

在WooCommerce循环中添加子类别和产品之间的分隔符

Laravel withOnly不限制查询

在 WooCommerce 更新结帐事件上动态更新自定义内容

woocommerce_available_ payment_gateways 过滤器挂钩多次触发

通过添加计数器修改文本区域表单中的重复值

将自定义保存金额移至 Woocommerce 简单产品中的价格以下

PHP向API发送curl请求

在 PHP 8.2 中使用 PHP Spreadsheet 和 CodeIgniter 3 导出 Excel 时出错

根据WooCommerce中选定的变体重量更改输入数量步值

将 HTML 表单链接到 SQLite 数据库

PHP 自动函数参数和变量