3 回答
TA贡献1872条经验 获得超4个赞
首先,您可以将 预计算implode("','", $userStatus)为变量。这样,您不必多次重复 implode 函数。它更具可读性并且具有更好的性能。
其次,最重要的是您以错误的方式处理数据!这种计算应该在您的数据库中完成。例如,您已将多对多关系转换为一对多。这使您的代码可读性降低,效率降低。
第三,不要过度设计你的代码。如果您要进行操作,请在变量中进行操作以提高可读性而不是提高性能。性能通常取决于算法、结构和设计,而不是定义变量。
TA贡献1854条经验 获得超8个赞
作为一般做法,我不会分配新变量,除非我实际上要以需要它的方式使用它。当然也有例外,可读性会显着提高。我认为您的示例根本不符合该阈值。
事实上,我认为你的具体例子,在这里分配另一个变量可能不清楚是什么$userStatus。浏览代码时要跟踪的是另一件事。
当然,没有什么“丑陋”的$myObj->userStatus。
无论如何,这里还有其他问题。永远不要将数据直接连接到 SQL 查询中。它至少需要转义,但绑定参数更好。否则,您将面临一大堆错误和安全问题。
如果你使用命名参数,你会发现无论如何你只会使用$myObj->userStatus一次。
TA贡献2041条经验 获得超4个赞
您应该尝试以下代码:
$userStatus = $myObj->userStatus;
//Some Code HEre
$userStatusimp = implode(',', $userStatus);
AND (myTable.field_1 IN ('" .$userStatusimp. "')
OR myTable.field_2 IN ('" .$userStatusimp . "')
OR myTable.field_3 IN ('" .$userStatusimp. "'))";
- 3 回答
- 0 关注
- 168 浏览
添加回答
举报
