在網頁設計打滾久了,難免遇到一些奇奇怪怪的狀況,明明之前網站都好好的,忽然有一天就出現錯誤了。沒愈過的狀況,第一念頭就是去搜尋一下,然後就會看到一些很奇怪的解法。

第一篇 WordPress 界的都市傳說,先來說說這個錯誤訊息:

Allowed memory size of xxxxxxxx bytes exhausted (tried to allocate xxx bytes)

這訊息的意思是你的網站記憶體不夠用,被現在執行的程式檔吃光了。然後網路上文章也會給你一種解法,就是提高記憶體使用的上限數值。例如,在 php.ini 修改 memory_limit 的值,或是在程式裡面加入這一段 ini_set(“memory_limit”,”128M”)。還有人教你都不要限制的危險作法 ini_set(“memory_limit”, “-1”)。不幸的話,你也許會遇到再怎麼提高,都一樣出現不足的訊息。

其實這些作法,都是在掩蓋一個事實,你的程式碼,一定在某一個地方出現錯誤,或是邏輯寫法有問題,才會導致記憶體被吃光光的。所以你要做的,應該是一步一步去追程式碼,看看到哪一段出現這個錯誤,然後修正它這樣子才對。