将其与函数一起使用的PHP开关

将其与函数一起使用的PHP开关,php,function,switch-statement,Php,Function,Switch Statement,我有这个开关,我根据开关的动作选择做某些事情。根据我的测试,当页面运行时,开关中的功能甚至没有发生 我对现在能够运行sortby操作感兴趣。当我转到页面时,switch将我置于第一种情况下,但不运行该功能。为什么?我怎么修理它 switch ($_GET['action']) { case 'sortby': sort_by($_GET['sortby']); break; case 'add':

我有这个开关,我根据开关的动作选择做某些事情。根据我的测试,当页面运行时,开关中的功能甚至没有发生

我对现在能够运行sortby操作感兴趣。当我转到页面时,switch将我置于第一种情况下,但不运行该功能。为什么?我怎么修理它

switch ($_GET['action']) {
        case 'sortby':
            sort_by($_GET['sortby']);
            break;
        case 'add':
            resident_add($_GET['residentID']);
            include('inc/modify/add.php');
            break;
        case 'edit':
            resident_edit($_GET['residentID']);
            include('inc/modify/edit.php');
            break;
        case 'delete':
            resident_delete($_GET['residentID']);
            include('inc/modify/delete.php');
            break;
        case 'search':
            echo "";
            break;
        default:
            resident_default($_GET['sortby']);
    }

function sort_by($sortby) {
    if ($sortby == "last_name") {
        $sort_db_field = "Last Name";
        $sort_order = "ASC";    
    } elseif ($sortby == "lot") {
        $sort_db_field = "Lot"; 
        $sort_order = "ASC";
    } elseif ($sortby == "date_added") {
        $sort_db_field = "No";  
        $sort_order = "DESC";   
    } else {
        include('inc/error.php?error_code=100');
    }
return $sort_db_field;
return $sort_order;
}

$data = mysqli_query($dbcon, "SELECT * FROM `residents` ORDER BY `residents`.`".$sort_db_field."` ".$sort_order."") or die(mysqli_error());

一个函数中不能有2条返回语句,第二条语句永远不会执行

在切换之前声明两个变量:

$sort_db_field = "";  
$sort_order = "";  

switch ($_GET['action']) {
    /*snip*/
}

然后在函数中删除返回值。此函数现在将设置您声明的两个变量中的值

你确定它没有运行该函数吗?您没有从排序依据返回/打印,因此您怎么知道?@rainfromheaven在这种情况下,我应该以排序依据返回什么?我忘了大部分时间我都用函数了@amal$data=mysqli_query($dbcon,“从
residents
ORDER BY
residents
“$sort_db_field.”)或死(mysqli_error());我添加了这个仍然不工作的返回$sort\u db\u字段;返回$sort_订单;您的
mysqli\u error()
中应该有链接:
mysqli\u error($dbcon)两个
在单个函数中返回
s???这太疯狂了,如果您使用
global
或通过引用传递这些变量,那么第二个变量将永远不会运行。