Переключатель PHP () не работает

У меня есть этот 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 к test.php?act=manage – конечно, я получаю manage things

Итак … как я могу это исправить? спасибо

Иссета php возвращает логическое значение. Таким образом, $ destination является либо истинным, либо ложным, а не строкой.

Пытаться

 if(isset($_GET['act'])) $destination = $_GET['act']; 

Ваша проблема:

 $destination = isset($_GET['act']); 

isset возвращает true или false , никогда ни одно из строковых значений, которое вы используете.

Вы можете использовать что-то вроде:

 $destination = isset($_GET['act']) ? $_GET['act'] : ''; 

Вы должны использовать:

 <?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'];