3 回答

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個贊
首先,您可以將 預(yù)計算implode("','", $userStatus)
為變量。這樣,您不必多次重復(fù) implode 函數(shù)。它更具可讀性并且具有更好的性能。
其次,最重要的是您以錯誤的方式處理數(shù)據(jù)!這種計算應(yīng)該在您的數(shù)據(jù)庫中完成。例如,您已將多對多關(guān)系轉(zhuǎn)換為一對多。這使您的代碼可讀性降低,效率降低。
第三,不要過度設(shè)計你的代碼。如果您要進(jìn)行操作,請?jiān)谧兞恐羞M(jìn)行操作以提高可讀性而不是提高性能。性能通常取決于算法、結(jié)構(gòu)和設(shè)計,而不是定義變量。

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個贊
作為一般做法,我不會分配新變量,除非我實(shí)際上要以需要它的方式使用它。當(dāng)然也有例外,可讀性會顯著提高。我認(rèn)為您的示例根本不符合該閾值。
事實(shí)上,我認(rèn)為你的具體例子,在這里分配另一個變量可能不清楚是什么$userStatus
。瀏覽代碼時要跟蹤的是另一件事。
當(dāng)然,沒有什么“丑陋”的$myObj->userStatus
。
無論如何,這里還有其他問題。永遠(yuǎn)不要將數(shù)據(jù)直接連接到 SQL 查詢中。它至少需要轉(zhuǎn)義,但綁定參數(shù)更好。否則,您將面臨一大堆錯誤和安全問題。
如果你使用命名參數(shù),你會發(fā)現(xiàn)無論如何你只會使用$myObj->userStatus
一次。

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個贊
您應(yīng)該嘗試以下代碼:
$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 關(guān)注
- 144 瀏覽
添加回答
舉報