我有这个PHP开关:
<?php
$destination = isset($_GET['act']);
switch ($destination) {
default:
echo "test";
break;
case "manage":
echo "manage things";
break;
case "create":
echo "create things";
break;
}
?>
但是,当我转到test.php?act=create
时,输出为manage things
而非create things
....当我转到test.php?act=manage
时 - 我当然得到{ {1}} ...
那么......我该如何解决这个问题?谢谢
答案 0 :(得分:7)
php的isset返回一个布尔值。所以$ destination是true还是false,而不是字符串。
尝试
if(isset($_GET['act']))
$destination = $_GET['act'];
答案 1 :(得分:3)
你的问题是:
$destination = isset($_GET['act']);
isset
会返回true
或false
,也不会返回您使用的任何字符串值。
您可以使用以下内容:
$destination = isset($_GET['act']) ? $_GET['act'] : '';
答案 2 :(得分:2)
你必须使用:
<?php
if(isset($_GET['act'])) $destination = $_GET['act'];
switch ($destination) {
case "manage":
echo "manage things";
break;
case "create":
echo "create things";
break;
default:
echo "test";
}
或者只是使用:
$destination = @$_GET['act'];