0

私がやろうとしているのは、$ _ GET ['page']変数に基づいてエコーアウトすることですが、すべてのナビゲーションメニューでこれをエコーアウトします。現在のページのみを使用するにはどうすればよいですか?これはそのphp部分にすぎず、実際のhtmlコードは各行の下にありますが、簡単にするために含めませんでした。

<?php if($_GET['page'] == 'user_edit' || 'NULL'){ echo "<li class=\"current\">"; } else{ echo "<li>";} ?>
<?php if($_GET['page'] == 'manage' || 'add' || 'ftp'){ echo "<li class=\"current\">"; } else{ echo "<li>";} ?>
<?php if($_GET['page'] == 'bugs' || 'support' || 'notifications'){ echo "<li class=\"current\">"; } else{ echo "<li>";} ?>
4

2 に答える 2

2

これは良くありません:

if ($_GET['page'] == 'manage' || 'add')

この場合、文字列'add'はブール値trueと評価されます。これは、条件が毎回発生することを意味します。代わりにこれが必要です:

if ($_GET['page'] == 'manage' || $_GET['page'] == 'add')

またはこれ:

if (in_array($_GET['page'], array('manage', 'add')))
于 2012-12-17T17:09:13.723 に答える
1

このようには動作しません。あなたの状態は次のように評価されます:

if ( ( $var == 'foo' ) || ( 'bar' ) || ( 'baz' ) )

上記のグループ化に注意してください。3つすべてが別々の式です。$var「「foo」、「bar」、「baz」に等しい場合」を意味するのではなく、「 $var「foo」が真であるか、「bar」が真であるか、「baz」が真である場合」を意味します。

そして'bar'、常にtrueです。

必要なもの:

if ($var == 'foo' || $var == 'bar' || $var == 'baz')

また

if (in_array($var, array('foo', 'bar', 'baz'))
于 2012-12-17T17:09:17.593 に答える