从PHP中的链接获取变量,问题

时间:2018-03-02 11:19:53

标签: php

我的网址如下:

session.php?action=create_program

然后我有以下代码:

if( isset($_GET['action']) ){ $action= $_GET['action']; $action=''; }

它会返回一个空字符串,但它应该返回'' create_program'

4 个答案:

答案 0 :(得分:5)

如果您在获取请求中没有收到任何内容,我认为您试图将其设置为空。所以要么像这样做

if( isset($_GET['action']) ){
    $action= $_GET['action'];
} else {
    $action='';
}

或者,更简单的是,如果没有get参数,则给出一个保持设置的默认值。

$action = '';
if( isset($_GET['action']) ){
    $action= $_GET['action'];
}

最后,正如Cashbee在下面的评论中所建议的那样,您可以使用ternary operator来检查$_GET['action']是否已设置,如果不是,请为{提供默认值{1}}。

$action

答案 1 :(得分:2)

您将| id | prj_id | svc_id | loc_id | status | created_by | created_at | deleted_by | deleted_at | |----|--------|--------|--------|--------|------------|----------------------|------------|----------------------| | 7 | 7751 | 7821 | 5327 | false | 1 | 2018-02-26T06:17:05Z | 1 | 2018-02-26T06:17:33Z | | 4 | 7751 | 7825 | 5324 | false | 1 | 2018-02-26T06:16:52Z | 1 | 2018-02-26T06:17:33Z | | 2 | 7751 | 7821 | 5321 | false | 1 | 2018-02-26T06:17:05Z | 1 | 2018-02-26T06:17:33Z | 设置为最后为空,这就是它返回空字符串的原因

$action

答案 2 :(得分:2)

使用三元运算符很容易:

$action = isset($_GET['action']) ? $_GET['action'] : '';

您应该始终检查变量是设置还是空。

$action = empty($_GET['action']) ? '' : $_GET['action'];

甚至更好,使用PHP过滤器功能。

$action = filter_input(INPUT_GET, 'action');

这样做的好处是,您甚至可以使用规则来提供适当的结果,如http://php.net/manual/de/function.filter-input.php

中所述

答案 3 :(得分:1)

//$action will be empty if not have $_GET['action'];, just for PHP7
$action = $_GET['action'] ?? '';
希望可以帮到你!