2017-01-16 97 views
1

你好我有一个想法的方式来设置自定义变量与$_GET对方在一个更清洁的方式比下面,这是一个回发的url http://example.com/postback.php?id={offer_id}&offer={offer_name}&session={session_ip}&payout={payout}后运行我得到所有$_GET与他们的数据或零为所有变量:$id,$offer,$session,$payout显然我是一个PHP新手,请容易对我!谢谢,任何帮助都会很棒。检查GET isset和set变量的更好方法是什么?

if (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; 
} 
+0

您可以通过充分'GET'循环,像'的foreach($ _ GET为$名=> $值)'。 '$ name'将成为索引。有了这种方法,你应该首先初始化所有的变量为空(或'nil')。 – chris85

回答

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'); ... 
+0

有没有一种方法可以通过url(解析)求出变量? – Benjamin

+0

@Benjamin是'GET'中的数据还是URL是一个字符串? – chris85

0

isset处理它easyer是不需要的,也许你可以使用三元运营商。

$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; 
相关问题