Tôi đã tự hỏi tại sao php xử lý phạm vi của hàm được khai báo trong một hàm khác khi hàm được khai báo bên trong một hàm lớp.Phạm vi hàm được khai báo trong hàm
Ví dụ:
function test() // global function
{
function myTest() // global function. Why?
{
print("Hello world");
}
}
class CMyTestClass
{
public function test() // method of CMyTestClass
{
function myTest() // This declaration will be global! Why?
{
print("Hello world");
}
}
}
}
Ai có thể giải thích điều này với tôi tại sao điều này xảy ra? Cảm ơn câu trả lời của bạn.
Greetz.
Vì lợi ích của sự tò mò của tôi, lợi thế của việc khai báo hàm trong phương thức là gì? –
@Gordon Bạn phải gọi hàm ở đầu tiên để nó được xác định. – Wiseguy
@MikeB - Có lẽ có những lý do khác, nhưng cách tiếp cận này có thể là một nỗ lực ở một loại "chức năng ẩn danh". Định dạng đúng để làm như vậy là ở đây: http://php.net/manual/en/functions.anonymous.php – rinogo