2015-06-18 60 views
0

我遇到一個函數在一些代碼我試圖調試,我不知道爲什麼它是這樣寫的PHP的foreach,繼續

foreach ($companies as $company) { 
    if (!isset($company->account)) { 
     continue; 
    } 
    some_function($company, $sectorsMap, $subSectorsMap); 
} 

這是一樣的嗎?

foreach ($companies as $company) { 
    if (!isset($company->account)) { 
     some_function($company, $sectorsMap, $subSectorsMap); 
    } 
} 

繼續控制結構如何工作?

乾杯

+0

任何(好的)php開發者都可以通過10種不同的方式來完成。 –

+1

@ElliotB。這兩個片段並不相同。在第一種情況下,'some_function'只能在設置'$ company-> account'時執行,另一種方式在第二個代碼段中執行。 –

+2

我認爲第二個代碼應該是if(isset($ company-> account))而不是if(!isset($ company-> account)) – Vishal

回答

1

如果你做的if聲明等價的,我想說的頂配版更通用的和更復雜的語句是由於以下更好:

  1. 如果你有多個if - continue聲明,第一種方法將允許您按順序列出它們,而無需嵌套縮進,這可以讓您的代碼更清晰。使用第二種方法,可以獲得大量的嵌套縮進。
  2. 如果您在if - continue聲明之後有很多代碼,則第一種方法將使大部分代碼縮進並且可能更易於閱讀。

在你有一個聲明出來的continue的側具體的例子,它可能沒有太大的差別,但如果你要挑選到處使用一種方法,第一種方法可能是複雜的循環更好。

+0

謝謝,我想我只是需要澄清如何繼續工作,現在我意識到不同之處。乾杯 –