thể trùng lặp:
Immediately executing anonymous functionsTôi có thể đánh giá ngay một chức năng ẩn danh không?
tôi muốn đánh giá ngay lập tức một chức năng ẩn danh chứ không phải là nó xuất hiện như một đối tượng đóng cửa trong args phương pháp. Điều này có thể không?
Ví dụ:
$obj = MyClass;
$obj->Foo(function(){return "bar";}); // passes a Closure into Foo()
$obj->Foo(function(){return "bar";}()); // passes the string "bar" into Foo()?
Dòng thứ 3 là cú pháp bất hợp pháp - là có cách nào để làm điều này?
Cảm ơn
Thật khó để tưởng tượng lý do tại sao bạn cần thực hiện việc này? Tại sao không chỉ gán kết quả của hàm cho một biến và sau đó chuyển biến đó thay vào đó? –
Cũng trong những ví dụ này chức năng của bạn là khá nhiều chức năng vô danh, không có đặc điểm đóng cửa, nó không phải 'nhớ' bất kỳ biến nào từ ngữ cảnh hiện tại của nó –
Tôi nhận ra rằng, tôi thực sự không muốn giải thích tại sao tôi cần để làm điều này - rõ ràng đó là một tình huống bất thường. – Tom