Tốc ký hàm lambda trong PHP
Biểu thức hàm mũi tên là một thay thế nhỏ gọn cho biểu thức hàm truyền thống, với một số khác biệt về ngữ nghĩa và hạn chế có chủ ý trong cách sử dụng Show
Thử nócú pháp
Tham số còn lại, tham số mặc định và phá hủy trong tham số được hỗ trợ và luôn yêu cầu dấu ngoặc đơn ________số 8 Hàm mũi tên có thể là 3 bằng cách đặt trước biểu thức bằng từ khóa 3
Sự mô tảHãy phân tích từng bước một hàm ẩn danh truyền thống thành hàm mũi tên đơn giản nhất. Mỗi bước trên đường đi là một chức năng mũi tên hợp lệ Ghi chú. Biểu thức hàm truyền thống và hàm mũi tên có nhiều điểm khác biệt hơn so với cú pháp của chúng. Chúng tôi sẽ giới thiệu sự khác biệt về hành vi của họ chi tiết hơn trong một số tiểu mục tiếp theo
Trong ví dụ trên, cả dấu ngoặc quanh tham số và dấu ngoặc xung quanh thân hàm đều có thể được bỏ qua. Tuy nhiên, chúng chỉ có thể được bỏ qua trong một số trường hợp nhất định. Dấu ngoặc đơn chỉ có thể được bỏ qua nếu hàm có một tham số đơn giản. Nếu nó có nhiều tham số, không có tham số hoặc tham số mặc định, hủy cấu trúc hoặc còn lại, thì bắt buộc phải có dấu ngoặc đơn xung quanh danh sách tham số 3Dấu ngoặc nhọn chỉ có thể được bỏ qua nếu hàm trả về trực tiếp một biểu thức. Nếu phần thân có các dòng xử lý bổ sung, thì bắt buộc phải có dấu ngoặc nhọn — và từ khóa 5 cũng vậy. Các hàm mũi tên không thể đoán bạn muốn quay lại cái gì hoặc khi nào 5Các chức năng mũi tên luôn được đặt tên. Nếu hàm mũi tên cần gọi chính nó, hãy sử dụng biểu thức hàm được đặt tên để thay thế. Bạn cũng có thể gán chức năng mũi tên cho một biến để nó có tên 6thân hàmCác hàm mũi tên có thể có phần thân ngắn gọn hoặc phần thân khối thông thường Trong phần nội dung ngắn gọn, chỉ một biểu thức duy nhất được chỉ định, biểu thức này trở thành giá trị trả về ngầm định. Trong phần thân khối, bạn phải sử dụng câu lệnh 5 rõ ràng 8Trả về đối tượng bằng cách sử dụng cú pháp cơ thể ngắn gọn 7 không hoạt động như mong đợi 0Điều này là do JavaScript chỉ xem hàm mũi tên có phần thân ngắn gọn nếu mã thông báo theo sau mũi tên không phải là dấu ngoặc nhọn bên trái, vì vậy mã bên trong dấu ngoặc nhọn ({}) được phân tích cú pháp dưới dạng một chuỗi các câu lệnh, trong đó 8 là nhãn, không phải Để khắc phục điều này, hãy bọc đối tượng bằng chữ trong ngoặc đơn 2Không thể được sử dụng như phương phápCác biểu thức hàm mũi tên chỉ nên được sử dụng cho các hàm không có phương thức vì chúng không có 6 của riêng chúng. Hãy xem điều gì sẽ xảy ra khi chúng ta cố gắng sử dụng chúng như các phương thức 0Một ví dụ khác liên quan đến 30 1Bởi vì phần thân của lớp có ngữ cảnh 6, các chức năng của mũi tên khi các trường lớp đóng trên ngữ cảnh 6 của lớp và 6 bên trong phần thân của hàm mũi tên sẽ trỏ chính xác đến thể hiện (hoặc chính lớp đó, đối với các trường tĩnh). Tuy nhiên, vì nó là một bao đóng, không phải ràng buộc riêng của hàm, nên giá trị của 6 sẽ không thay đổi dựa trên ngữ cảnh thực thi 2Các thuộc tính hàm mũi tên thường được cho là "phương thức tự động liên kết", bởi vì tương đương với các phương thức thông thường là 3Ghi chú. Các trường lớp được xác định trên phiên bản chứ không phải trên nguyên mẫu, vì vậy mỗi lần tạo phiên bản sẽ tạo một tham chiếu hàm mới và phân bổ một bao đóng mới, có khả năng dẫn đến sử dụng nhiều bộ nhớ hơn so với phương thức không liên kết thông thường Vì những lý do tương tự, các phương thức 35, 36 và 37 không hữu ích khi được gọi trên các hàm mũi tên, bởi vì các hàm mũi tên thiết lập 6 dựa trên phạm vi mà hàm mũi tên được xác định bên trong và giá trị 6 không thay đổi dựa trên cách hoạt động của hàm Không ràng buộc đối sốCác hàm mũi tên không có đối tượng 7 của riêng chúng. Do đó, trong ví dụ này, 7 là một tham chiếu đến các đối số của phạm vi kèm theo 4Ghi chú. Bạn không thể khai báo một biến có tên là 7 ở chế độ nghiêm ngặt, vì vậy đoạn mã trên sẽ là một lỗi cú pháp. Điều này làm cho hiệu ứng phạm vi của 7 dễ hiểu hơn nhiềuTrong hầu hết các trường hợp, sử dụng các tham số còn lại là một cách thay thế tốt cho việc sử dụng một đối tượng 7 5Không thể được sử dụng làm hàm tạoCác hàm mũi tên không thể được sử dụng làm hàm tạo và sẽ báo lỗi khi được gọi với 9. Họ cũng không có tài sản 56 6Không thể được sử dụng như máy phát điệnKhông thể sử dụng từ khóa 2 trong phần thân của hàm mũi tên (ngoại trừ khi được sử dụng trong các hàm tạo được lồng thêm trong hàm mũi tên). Do đó, các chức năng mũi tên không thể được sử dụng làm trình tạoNgắt dòng trước mũi tênMột hàm mũi tên không thể chứa dấu ngắt dòng giữa các tham số và mũi tên của nó 7Với mục đích định dạng, bạn có thể đặt dấu ngắt dòng sau mũi tên hoặc sử dụng dấu ngoặc đơn/dấu ngoặc quanh thân hàm, như minh họa bên dưới. Bạn cũng có thể đặt ngắt dòng giữa các tham số 8Ưu tiên của mũi tênMặc dù mũi tên trong hàm mũi tên không phải là toán tử, nhưng hàm mũi tên có các quy tắc phân tích cú pháp đặc biệt tương tác khác với mức độ ưu tiên của toán tử so với các hàm thông thường 9Bởi vì 58 có mức độ ưu tiên thấp hơn so với hầu hết các toán tử, dấu ngoặc đơn là cần thiết để tránh việc 59 được phân tích thành danh sách đối số của hàm mũi tên 0ví dụSử dụng chức năng mũi tên 1Sử dụng cuộc gọi, liên kết và áp dụngCác phương thức 35, 36 và 37 hoạt động như mong đợi với các hàm truyền thống, bởi vì chúng tôi thiết lập phạm vi cho từng phương thức 2Với các hàm mũi tên, vì hàm 63 của chúng ta về cơ bản được tạo trên phạm vi (toàn cầu) của 64, nên nó sẽ giả sử 6 là 64 3Có lẽ lợi ích lớn nhất của việc sử dụng hàm mũi tên là với các phương thức như 67 và 68 thường yêu cầu một số kiểu đóng, 35, 36 hoặc 37 để đảm bảo rằng hàm được thực thi trong phạm vi phù hợp
Fn PHP là gì?Từ khóa fn được dùng để tạo hàm mũi tên . Các hàm mũi tên chỉ khả dụng trong phiên bản PHP 7. 4 trở lên. Các hàm mũi tên có quyền truy cập vào tất cả các biến từ phạm vi mà chúng được tạo.
Làm cách nào để viết hàm lambda trong PHP?php $name = 'biến toàn cục';
Tại sao PHP sử dụng mũi tên?Các hàm mũi tên đã được giới thiệu trong PHP 7. 4 là cú pháp ngắn gọn hơn cho các hàm ẩn danh . Cả hàm ẩn danh và hàm mũi tên đều được triển khai bằng lớp Đóng. Các hàm mũi tên có dạng cơ bản fn (argument_list) => expr.
Làm cách nào để gọi một hàm ẩn danh trong PHP?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. |