Tại sao PHP cho phép các hàm lồng nhau?Làm tổ chức năng PHP: với mục đích gì?
<?php
function foo() {
function bar() {
return "bar";
}
return "foo";
}
print foo();
print bar();
.. là hợp lệ PHP.
Nhưng:
- Tại sao làm tổ sẽ là cần thiết bao giờ?
- Và ngay cả khi vậy, tại sao tôi có thể gọi thanh từ bất kỳ đâu (và không, ví dụ: chỉ với foo() hoặc máng foo.bar() hoặc như vậy).
Tôi đã tham gia vào ngày hôm nay, vì tôi đã quên một khung đóng ở đâu đó và đã có quá nhiều điểm tiếp theo. Mã đã hợp lệ và không có lỗi nào bị ném; nhưng tất cả bắt đầu diễn xuất thực sự kỳ lạ. Chức năng không được khai báo, callbacks sẽ bối rối và như vậy. Đây có phải là một tính năng, và nếu có, với mục đích gì? Hoặc một số phong cách riêng?
ĐÁP: commentor chỉ ra rằng đây là một trùng lặp của What are php nested functions for.
Đáng yêu. Như thể PHP cần một lý do khác để thu hút hận thù ... –
Đã được bảo vệ rất tốt rồi: có thể trùng lặp [Chức năng lồng nhau của php là gì?] (Http://stackoverflow.com/questions/415969/what-are- php-lồng nhau-chức năng-cho) – meagar
Ngoài ra, chỉ vì bạn không hiểu một cái gì đó không làm cho nó "độc tài", mà không phải là một từ bằng cách này. – meagar