2012-05-31 57 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

谢谢,我已经看到,在早些时候在其他人的脚本中,所以我认为这是最有效的方法。 –