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 關注
- 163 瀏覽
添加回答
舉報
