Hàm ẩn danh đệ quy PHP
Bây giờ các chức năng ẩn danh đã có sẵn kể từ PHP 5. 3, Tôi thấy mình thường xuyên sử dụng chúng. Tuy nhiên, có một điều mà tôi dường như không thể hiểu đúng là có thể tự tạo một tham chiếu hàm ẩn danh - khi làm như vậy, nó sẽ gọi chính nó theo cách đệ quy Show Làm thế nào để bạn làm điều này?
Điều này trở nên tẻ nhạt khi gọi đi gọi lại (có thể đặt nó trong một vòng lặp
Giải phápĐể hàm ẩn danh có thể gọi chính nó một cách đệ quy, chúng ta cần đảm bảo rằng nó có một tham chiếu đến chính nó để nó có thể gọi. Vì vậy, giải pháp của chúng tôi, sử dụng một bao đóng
Một lưu ý cuối cùngLưu ý cách hàm tự tham chiếu - sử dụng tham chiếu biến. Tại sao điều này là cần thiết? Vì biến Trong quá trình phát triển Florrie, tôi gặp phải một tình huống yêu cầu đệ quy. Tuy nhiên, tôi đang làm việc trong một lớp học và không muốn lãng phí lớp học của mình với các chức năng không thể sử dụng lại, có mục đích duy nhất. tôi phải đối mặt với một vấn đề; Đầu tiên, tôi sẽ làm rõ một chút về sự khác biệt giữa hàm tĩnh và hàm ẩn danh trong PHP. Nếu bạn biết tất cả những thứ này, hãy bỏ qua phần tiếp theo Các hàm tĩnh là tiêu chuẩn trong các tập lệnh PHP. Nếu bạn định nghĩa một hàm như thế này, thì nó là tĩnh
Hàm 0 đã được xác định tĩnh và nếu bạn cố xác định lại chúng, bạn sẽ nhận được lỗi nghiêm trọng sau. 1Hàm ẩn danh, còn được gọi là hàm đóng, được khai báo nội tuyến và được sử dụng bởi một đoạn mã khác. Chúng được định nghĩa theo cách này
Các loại chức năng này thường được sử dụng làm chức năng gọi lại, vì vậy bạn không có chức năng tĩnh bổ sung nằm xung quanh chỉ thực hiện một việc. Các hàm ẩn danh không nhất thiết phải được gán cho một biến; . Đây là một ví dụ nhanh sử dụng 2
Vì vậy, trở lại câu hỏi ban đầu. bạn có thể sử dụng hàm ẩn danh theo cách đệ quy không? Hóa ra là có, một chức năng ẩn danh có thể tự gọi chính nó. Có một vài phương pháp để làm điều đó, nhưng chỉ có một phương pháp rất có ý nghĩa Để sử dụng một hàm ẩn danh một cách đệ quy, chúng ta cần cung cấp cho nó một cách để gọi chính nó. Thật không may, không có cách tích hợp nào để thực hiện việc này; . Điều đó dường như không phải là trường hợp, mặc dù. Có lẽ trong một phiên bản trong tương lai? Hiện tại, cách duy nhất để cho phép một hàm ẩn danh gọi chính nó là gán nó cho một biến và cung cấp cho hàm ẩn danh một tham chiếu đến chính nó bằng cách sử dụng từ khóa Vì điều này phải được thực hiện trong khi chức năng ẩn danh đang được xác định, nên nó phải được gửi bằng tham chiếu; Ví dụ nhanh, đây là ví dụ giai thừa đệ quy được thực hiện trong PHP
Tôi đang sử dụng công cụ này để phân tích và xử lý các tệp XML theo cách đệ quy, nhưng bạn có thể sử dụng nó cho bất kỳ nơi nào mà bạn cần một chút đệ quy mà không cần thêm các chức năng bổ sung Hàm ẩn danh có thể được đệ quy không?Ngay cả khi không có cơ chế tham chiếu đến hàm hiện tại hoặc hàm gọi, có thể sử dụng đệ quy ẩn danh trong ngôn ngữ cho phép các hàm làm đối số . Điều này được thực hiện bằng cách thêm một tham số khác vào hàm đệ quy cơ bản và sử dụng tham số này làm hàm gọi đệ quy.
PHP có chức năng ẩn danh không?Hàm ẩn danh, còn được gọi là bao đóng, cho phép tạo các hàm không có tên cụ thể. Chúng hữu ích nhất với vai trò là giá trị của các tham số có thể gọi được, nhưng chúng cũng có nhiều cách sử dụng khác. Các hàm ẩn danh được triển khai bằng cách sử dụng lớp Đóng . printf("Xin chao %s\r\n", $name);
Hàm đệ quy PHP là gì?Đệ quy trong PHP - sử dụng khi nào và như thế nào. Xuất bản ngày 13 tháng 11 năm 2021. Đệ quy là một giải pháp lập trình trong đó hàm gọi chính nó . Nó được sử dụng để giải quyết nhiều vấn đề khác nhau, tất cả đều có điểm chung là cấu trúc chứa sự lặp lại.
Cú pháp của hàm ẩn danh trong PHP là gì?Cú pháp. $var=function ($arg1, $arg2) { return $val; . Có dấu chấm phẩy sau định nghĩa hàm vì định nghĩa hàm ẩn danh là biểu thức. There is no function name between the function keyword and the opening parenthesis. There is a semicolon after the function definition because anonymous function definitions are expressions. |