2012-05-31 61 views
0

我似乎無法弄清楚如何循環變量檢查。我所試圖做的是一樣的東西檢查這兩個變量,但在一個循環通過循環檢查變量

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

if(isset($check)){ 
    $check = $check; 
} 
else{ 
    $check = NULL; 
} 

我想要做這樣的事還是我想讓它顯示沒有錯誤的詳細effiecient如果可能的話

$variables = array($_GET['action'], $check); 
$define = array($action, $check); 

foreach($variables as $variable){ 
if(isset($variable){ 
    $variable = $define; 
} 
} 

而我有error_reporting(E_ALL)打開 有人可以幫我這個嗎?

+0

'$ define'是一個數組。您正在將該數組分配給$ variable。另外你將它賦值給'$ variable',它是循環範圍內的一個變量。 此外,您將$ action和$ check的值放入數組中,而不是對它們的引用。即使它是一個引用覆蓋,引用也不會改變舊引用的值。 – clentfort

+0

是的,但這是一個例子,我想知道它會如何工作:P –

回答

1

你的第一行會導致警告,如果變量未設置:

$variables = array($_GET['action'], $check); // here you are possibly using unset variables 

如果你想要把它寫短一點,你可以使用三元運算,但僅此而已:

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

我不認爲有一種更有效的方法來在一次掃描中檢查正常變量和超級全局變量的組合。

+0

謝謝,我已經看到,在早些時候在其他人的腳本中,所以我認爲這是最有效的方法。 –