爲什麼PHP允許嵌套函數?嵌套PHP函數:爲了什麼目的?
<?php
function foo() {
function bar() {
return "bar";
}
return "foo";
}
print foo();
print bar();
..是有效的PHP。
但是:
- 爲什麼會沒有需要嵌套?即使如此,爲什麼我可以從任何地方調用bar(而不是,例如只用foo()或trough foo.bar()等)。
我今天遇到了這個,因爲我忘了一個閉合支架的某個地方,並且還有一個更多的下降。該代碼是有效的,沒有錯誤拋出;但這一切開始表現得很奇怪。函數沒有被聲明,回調會瘋狂等等。 這是一個功能,如果是這樣,爲了什麼目的?還是一些特質?
答案:評註者指出,這是一個複製的What are php nested functions for。
可愛。好像PHP需要另一個原因來獲得仇恨... – 2010-11-15 17:29:10
已經很好地覆蓋了:[可能是[爲什麼是PHP嵌套功能?]的重複(http://stackoverflow.com/questions/415969/what-are- php-nested-functions-for) – meagar 2010-11-15 17:30:09
另外,僅僅因爲你不明白的東西並不會使它成爲「idiocracy」,這不是一個字。 – meagar 2010-11-15 17:32:31