-2
<?php
$whitelist = array('contact', 'about', 'user');
$_GET['page'] = array('contact');
$test = $_GET['page'];
if(isset($test))
{
  if(in_array($whitelist, $test))
  {
    $got = $test;
    echo $got;
  }
  else 
  {
    $got = 'home';
    echo $got;  
  }
}
?>

ここで、「連絡先」として結果を取得する必要がありますが、「ホーム」を取得しています。何故ですか ?

4

3 に答える 3

3

in_arrayの最初の引数はneedle(意味:あなたが探しているもの)であり、2番目の引数はhaystack(意味:私たちが探している場所)である必要があります。

これらを逆にしたと思います。needlは文字列(または他の変数型)である必要がありますが、配列ではありません。

したがって、スクリプトは次のようになります。

<?php
$whitelist = array('contact', 'about', 'user');
$test = 'contact';
if(isset($test))
{
  if(in_array($test, $whitelist))
  {
    $got = $test;
    echo $got;
  }
  else 
  {
    $got = 'home';
    echo $got;  
  }
}
?>
于 2012-06-11T16:42:47.150 に答える
3

ホワイトリストは文字列の配列であり、$ _ GET ['page']は文字列ではなく配列であるため、そして、あなたはパラメータを間違った方法で持っています。

于 2012-06-11T16:42:52.023 に答える
0
<?php
$whitelist = array('contact', 'about', 'user');
$_GET['page'] = 'contact';
$test = $_GET['page'];
if(isset($test))
{
  if(in_array($test, $whitelist))
  {
    $got = $test;
    echo $got;
  }
  else 
  {
    $got = 'home';
    echo $got;  
  }
}
?>
于 2012-06-11T16:46:40.973 に答える