2013-02-28 70 views
1

我想知道,我在PHP中有幾個函數,每次都沒有調用,但仍然包含在每個負載的文件中。即使你當時沒有調用函數,它是否仍然運行代碼?我問的原因是,我的函數中的代碼對於運行CPU而言是昂貴的,我不會每次都調用它們,並且要確定是否沒有調用它們不在函數內運行代碼。如果函數沒有在PHP中調用,代碼是否仍然在函數中運行?

謝謝

+3

無這是函數和函數調用的目的。 – defaultNINJA 2013-02-28 13:46:48

+1

函數只有在調用時纔會運行,所以不用擔心:-) – chriz 2013-02-28 13:47:14

+1

代碼如何運行?函數有爭論;他們的價值是什麼?這些功能何時運行?按什麼順序?有這麼多的問題與困難的答案,它應該是明顯的。 – Jon 2013-02-28 13:47:23

回答

3

簡言之,未明確叫不運行的功能。然而,這裏有一個簡短的內容和爲什麼我們使用我發現的函數。

函數是一個「黑盒子」,我們已經鎖定我們的節目 的一部分轉變。函數背後的想法是,它間隔化的 部分的程序,並且特別地,該函數內的代碼具有 一些有用的性能:

  1. 它執行一些明確定義的任務,這將是有用到其他 部分的程序。

  2. 它也可能對其他程序有用;也就是說,我們可能是 能夠重用它(而不必重寫它)。

  3. 該程序的其餘部分不必知道如何實現 函數的細節。這可以使程序 的其餘部分更容易思考。

  4. 該功能很好地執行其任務。它可能會被寫入做 稍多於第一個調用它的程序所需要的, ,預計調用程序(或其他一些 程序)可能稍後需要額外功能或改進 性能。 (這是一個要完成的功能做它的工作 好,否則可能出現不願調用它,它 因此可能無法實現可重用的目標是非常重要的。)

  5. 通過將代碼來執行有用的任務變成一個函數,而 只是在程序的其他部分調用該函數必須執行的任務,其餘的程序變得更清晰: 而不是有一些大的,複雜的,難以理解的 片代碼重複在任何地方執行任務,我們有一個簡單的函數調用 ,並且函數的名字提醒我們 我們正在執行哪項任務執行。

  6. 由於程序的其他部分並不需要知道的 細節功能是如何實現的,該程序的其餘部分不 護理如果函數後重新實現,在一些不同的方式 (只要它繼續執行相同的任務,當然!)。這 意味着該程序的一部分可以重寫,以提高性能或添加一個新功能(或只是爲了修復一個bug),而不必 不得不重寫程序的其餘部分。

功能可能是我們對抗 軟件複雜性的最重要的武器。你會想知道什麼時候適合 將函數處理分解爲函數(也可以不適用),以及如何設置函數接口以最好地實現上面提到的質量 :可重用性,信息隱藏,清晰度和可維護性。

http://www.eskimo.com/~scs/cclass/notes/sx5.html

+2

TL; DR:否,未調用的函數未運行。 – Andy 2013-02-28 13:57:47

+0

我認爲給出了什麼是功能目的的證據,它將指出爲什麼它不能自己運行:) – defaultNINJA 2013-02-28 14:13:11

+0

我的PHP函數中的語句實際上被執行並導致錯誤,請你幫我一下調試?在Google上搜索時找到答案。 – Oxwivi 2015-04-26 09:59:02

相關問題