检查GET是否设置和设置变量的更好方法是什么?

时间:2017-01-16 13:17:00

标签: php

您好我想到了一种方法来设置自定义变量与$_GET对应的方式比下面更清晰,这是运行后我得到的网址http://example.com/postback.php?id={offer_id}&offer={offer_name}&session={session_ip}&payout={payout}的回发对于所有变量,所有$_GET数据或nil都为$id$offer$session$payoutif (s('id')) { $id = $_GET["id"]; } else { $id = 'nil'; } if (s('offer')) { $offer = $_GET["offer"]; } else { $offer = 'nil'; } if (s('session')) { $session = $_GET["session"]; } else { $session = 'nil'; } if (s('payout')) { $payout = $_GET["payout"]; } else { $payout = 'nil'; } function s($name) { if(isset($_GET["$name"]) && !empty($_GET["$name"])) { return true; } return false; } 显然我是一个php新手,请继续我!谢谢,任何帮助都会很棒。

auth_item

3 个答案:

答案 0 :(得分:1)

使用extract:http://php.net/manual/de/function.extract.php

// Assuming $_GET = array('id' => 123, etc.)
extract($_GET);
var_dump($id);

// And later in your code
if (isset($id)) {
   // Do what you need
}

答案 1 :(得分:0)

也许您可以使用通用包装

<?php 
     function getValue($key, $fallback='nil') {
         if(isset($_GET[$key]) $val = trim($_GET[$key]);
         else $val = null;
         return ($val) ? $val : $fallback;
     }

然后你可以通过

处理它
     <?php 
            $id = getValue('id'); ...

答案 2 :(得分:0)

isset不需要,也许您可​​以使用三元运算符。

$id = !empty($_GET["id"]) ? $_GET["id"] : null;
$offer = !empty($_GET["offer"]) ? $_GET["offer"] : null;
$session = !empty($_GET["session"]) ? $_GET["session"] : null;
$payout = !empty($_GET["payout"]) ? $_GET["payout"] : null;