将变量发送到函数而不是函数是否更好?

时间:2017-01-10 04:07:06

标签: php mysql cakephp-3.0

我们正在使用查询来对php中的mysql结果进行排序。我决定使用一个变量,然后在从前端到达查询函数时将其分成两个。 Bellow是代码排序等于发送的示例值的示例。

$sort = 'total_amount-ASC';  
$order = explode("-",$sort); 
if($order[1]=='ASC'){ 
    $query->orderAsc("'".$order[0]."'"); 
}else if($order[1]=='DESC'){ 
    $query->orderDesc("'".$order[0]."'"); 
}

这是将代码从前端发送到php脚本的可接受方式,还是应该发送两个单独的变量?

1 个答案:

答案 0 :(得分:0)

如果你问的是代码是否是处理它的好方法,那么我的答案是否定的。仅仅因为它会失败几个单元测试:

  • 如果未指定订单或甚至未指定订单(假设PHP可以更快地对原始结果进行排序,该怎么办?)
  • 当需要时,多个排序标准怎么样?
  • 用户是否能够控制输出案例? 'asc'会和'ASC'一样工作吗?

传递这个的正确方法可能是数组,

Sort by: <select name="sort[]"> <option>City <option>State <option>Zip </select><br />
In <select name="order[]"><option value="">(none) <option value="ASC">A-Z <option value="DESC">Z-A </select>

迭代你的行,然后按字段顺序排序,即使它是空白的,也总是有相应的值。与桌面应用程序非常相似。