我想要做的是基于$ _GET ['页面']变量回显,但是它反映了我的所有导航菜单。我怎样才能使用我所在的页面?这只是它的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>";} ?>
答案 0 :(得分:2)
这不好:
if ($_GET['page'] == 'manage' || 'add')
在这种情况下,字符串'add'的计算结果为布尔值true,这意味着每次都会触发条件。你想要这个:
if ($_GET['page'] == 'manage' || $_GET['page'] == 'add')
或者这个:
if (in_array($_GET['page'], array('manage', 'add')))
答案 1 :(得分:1)
它不像这样工作。您的条件评估为:
if ( ( $var == 'foo' ) || ( 'bar' ) || ( 'baz' ) )
请注意上面的分组。这三个都是单独的表达。这并不意味着“如果$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'))