if($summary = get_post_summary()) { return $summary; }我指的是條件中的作業。非常狡猾,它也可以在JavaScript中完成,儘管它不太常見:
if(summary = document.getElementById("post-summary")) { return summary.innerHTML; }乍一看,您認為這是錯別字!確實,一些辯論者會通過警告標記這一點,詢問您是否是指平等測試(==)並將其誤認為是分配(=)。 但這不是一個錯誤 - 理解它的關鍵是要理解兩件事: 首先,分配返回一個值(您分配的值)。其次也是最重要的是,它返回的值評估為True或False,並最終確定條件是否通過。 現在,在DOM>評估和遍歷的世界中,此技術是一種安全且可預測的技術,因為Dom
var names = [], node = e ? e.target : event.srcElement; do { names.push(node.nodeName); } while(node = node.parentNode)直覺。 例如,正數和負數均評估為true,除了零和nan。而奇怪,一個對象 使用布爾構建器始終創建,即使它是新布爾(false)創建的! 所以要警告!這樣的語法不是為了閒聊。不應以狂熱的方式使用它,而過度依賴類型的轉換和任意值的鑄造。但是在合適的情況下使用良好,它可以簡化許多條件以生成更快,更精簡的代碼。 縮略圖信用:sbwoodside
經常詢問的問題(常見問題解答)關於條件內部的分配
>我如何避免有條件表達式中的作業?
>
>是否存在任何情況下,條件下的分配是可以接受的,甚至有益的?>
>通常灰心,某些情況下有條件分配的情況可以是有益的。例如,在需要在每次迭代中更新和檢查值的循環中,條件中的分配可以使代碼更加簡潔。但是,這應該謹慎進行,並應清楚地評論代碼以避免混淆。
>>在條件下分配在條件下分配引起的一些常見錯誤是什麼?例如,如果(x = 5)始終是正確的,因為它分配了5至x,而不是檢查x是否等於5。這可能導致代碼中的意外行為。
>>並非所有編程語言都允許在條件下進行分配。例如,Python不允許在條件下進行分配,如果您嘗試這樣做,將會出現語法錯誤。始終查看您正在使用的編程語言的語法規則。
以上是條件內的分配的詳細內容。更多資訊請關注PHP中文網其他相關文章!