php - 将变量发送到函数而不是发送到函数更好吗?

标签 php mysql cakephp-3.0

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

$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 脚本的可接受的方式还是我应该发送两个单独的变量?

最佳答案

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

  • 如果未指定顺序或者甚至希望未指定顺序怎么办(假设 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>

迭代您的行,然后仅对字段顺序进行排序,即使该值为空,也始终会有相应的值。与桌面应用程序的方式非常相似。

关于php - 将变量发送到函数而不是发送到函数更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41560965/

相关文章:

php - 如何在创建蛋糕烘焙模板 cakephp 3 时跳过选定的表格列

php - Laravel Auth 不工作,一切似乎都是正确的

php - 由cron执行时处理php脚本错误

php - 永久的 cron 作业

mysql - php mysql 按相关性排序全文搜索

mysql - cakephp 3.0 + 分组依据 + 计数 + 分页

Javascript:如何更改 contenteditable div 占位符颜色

mysql - 计算从一个 URL 浏览已爬网网站到另一个 URL 所需的步骤数

mysql - Laravel 路由参数未修剪(通常在添加空格时有效)

cakephp - 在 CakePHP3 中为 Paginate 添加条件