我的网址如下:
session.php?action=create_program
然后我有以下代码:
if( isset($_GET['action']) ){ $action= $_GET['action']; $action=''; }
它会返回一个空字符串,但它应该返回'' create_program'
答案 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'] ?? '';
希望可以帮到你!