Hướng dẫn dùng define anonymously trong PHP


Giới thiệu

Hàm ẩn danh là một hàm mà không có bất kỳ tên do người dùng xác định. Một chức năng như vậy cũng được gọi là chức năng đóng hoặc lambda. Đôi khi, bạn có thể muốn một chức năng sử dụng một lần. Đóng cửa là một chức năng ẩn danh đóng cửa môi trường được xác định. Bạn cần chỉ định sử dụng từ khóa trong đó. Sử dụng phổ biến nhất của hàm ẩn danh để tạo chức năng gọi lại nội tuyến.closure or lambda function. Sometimes, you may want a function for one time use. Closure is an anonymous function which closes over the environment in which it is defined. You need to specify use keyword in it.Most common use of anonymous function to create an inline callback function.

Nội dung chính Show

  • Giới thiệu
  • Ví dụ chức năng ẩn danh
  • Hàm ẩn danh là gọi lại
  • Hàm ẩn danh là gọi lại
  • Giới thiệu về các chức năng ẩn danh
  • Chuyển một hàm ẩn danh cho một chức năng khác
  • Phạm vi của hàm ẩn danh
  • Trả về một hàm ẩn danh từ một hàm
  • Bản tóm tắt
  • Chức năng ẩn danh trong PHP đưa ra ví dụ là gì?
  • Chức năng ẩn danh có nghĩa là gì?
  • Chức năng ẩn danh khác với hàm bình thường trong PHP như thế nào?
  • Hàm ẩn danh giải thích nó với bất kỳ ví dụ phù hợp là gì?

Cú pháp

$var=function ($arg1, $arg2) { return $val; };
  • Không có tên hàm giữa từ khóa chức năng và dấu ngoặc đơn mở.
  • Có một 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
  • Hàm được gán cho một biến và được gọi sau đó bằng cách sử dụng tên biến.
  • Khi được chuyển cho một chức năng khác mà sau đó có thể gọi nó sau, nó được gọi là một cuộc gọi lại.
  • Trả về nó từ bên trong một hàm bên ngoài để nó có thể truy cập vào các biến của hàm bên ngoài. Điều này được gọi là một đóng cửa.

Ví dụ chức năng ẩn danh

Thí dụ

& nbsp; bản demo trực tiếp

Đầu ra

Điều này sẽ tạo ra kết quả sau đây. -

cube of 3 = 27

Hàm ẩn danh là gọi lại

Trong ví dụ sau, một hàm ẩn danh được sử dụng làm đối số cho hàm usort () tích hợp. Hàm usort () sắp xếp một mảng đã cho bằng cách sử dụng hàm so sánh

Thí dụ

& nbsp; bản demo trực tiếp

 $y;
});
foreach ($arr as $x){
   echo $x . "
"; } ?>

Đầu ra

Điều này sẽ tạo ra kết quả sau đây. -

3
10
21
54
70

Hàm ẩn danh là gọi lại

Trong ví dụ sau, một hàm ẩn danh được sử dụng làm đối số cho hàm usort () tích hợp. Hàm usort () sắp xếp một mảng đã cho bằng cách sử dụng hàm so sánh

Thí dụ

& nbsp; bản demo trực tiếp

Đầu ra

Điều này sẽ tạo ra kết quả sau đây. -

marks=285 percentage=95

Hướng dẫn dùng define anonymously trong PHP

Hàm ẩn danh là gọi lại

  • Trong ví dụ sau, một hàm ẩn danh được sử dụng làm đối số cho hàm usort () tích hợp. Hàm usort () sắp xếp một mảng đã cho bằng cách sử dụng hàm so sánh
  • Chức năng ẩn danh như đóng cửa
  • Đóng cửa cũng là một hàm ẩn danh có thể truy cập các biến ngoài phạm vi của nó với sự trợ giúp của từ khóa sử dụng
  • Cập nhật vào ngày 18 tháng 9 năm 2020 13:35:13
  • Câu hỏi và câu trả lời liên quan
  • Các lớp ẩn danh PHP
  • Đóng cửa JavaScript so với các chức năng ẩn danh
  • Đóng gói JavaScript bằng các hàm ẩn danh
  • Chức năng trình bao bọc ẩn danh trong JavaScript
  • Khi nào nên sử dụng các chức năng JavaScript ẩn danh?
  • Việc sử dụng các chức năng ẩn danh có ảnh hưởng đến hiệu suất không?
  • The & nbsp; Ẩn danh & nbsp; chức năng trong Python
  • Tạo các đối tượng ẩn danh trong PHP
  • Các lớp ẩn danh trong PHP 7?
  • Các chức năng ẩn danh tự xâm nhập trong JavaScript là gì?
  • Làm thế nào để chuyển các đối số cho các chức năng ẩn danh trong JavaScript?

Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu về các chức năng ẩn danh của PHP và cách sử dụng chúng một cách hiệu quả.: in this tutorial, you will learn about PHP anonymous functions and how to use them effectively.

Giới thiệu về các chức năng ẩn danh

Khi bạn xác định một hàm, bạn chỉ định một tên cho nó. Sau đó, bạn có thể gọi chức năng theo tên của nó.

Ví dụ: để xác định một hàm nhân lên hai số, bạn có thể làm như sau:

function multiply($x, $y) { return $x * $y; }

Code language: HTML, XML (xml)

Hàm

cube of 3 = 27
2 chấp nhận hai đối số và trả về kết quả. Để gọi hàm
cube of 3 = 27
2, bạn chuyển các đối số cho nó như thế này:

multiply(10, 20);

Code language: HTML, XML (xml)

Trong ví dụ này,

cube of 3 = 27
2 là một hàm được đặt tên. Và bạn có thể sử dụng lại nó bao nhiêu lần tùy thích.

Bên cạnh các chức năng được đặt tên, PHP cho phép bạn xác định các hàm ẩn danh.

Một hàm ẩn danh là một hàm không có tên.

Ví dụ sau đây xác định hàm ẩn danh nhân lên hai số:

function ($x, $y) { return $x * $y; };

Code language: HTML, XML (xml)

Vì hàm không có tên, bạn cần kết thúc nó bằng dấu chấm phẩy (

cube of 3 = 27
5) vì PHP coi nó là một biểu thức.

Hàm ẩn danh này hoàn toàn không hữu ích vì bạn không thể sử dụng nó như một hàm được đặt tên.

Để sử dụng hàm ẩn danh, bạn cần gán nó cho một biến và gọi hàm thông qua biến.

Ví dụ sau đây gán hàm ẩn danh cho biến

cube of 3 = 27
6:
0

Và điều này gọi hàm ẩn danh thông qua biến

cube of 3 = 27
6:
1

Khi bạn đổ thông tin của biến

cube of 3 = 27
6, bạn sẽ thấy rằng nó thực sự là một đối tượng
cube of 3 = 27
9:
2

Lưu ý rằng

 $y;
});
foreach ($arr as $x){
   echo $x . "
"; } ?>
0 trong PHP không giống như việc đóng trong các ngôn ngữ lập trình khác như JavaScript hoặc Python.

Vì một hàm ẩn danh là một đối tượng, bạn có thể gán nó cho một biến, chuyển nó vào một hàm và trả lại từ một hàm.

Chuyển một hàm ẩn danh cho một chức năng khác

PHP có nhiều chức năng tích hợp chấp nhận chức năng gọi lại, ví dụ, hàm

 $y;
});
foreach ($arr as $x){
   echo $x . "
"; } ?>
1.

Hàm

 $y;
});
foreach ($arr as $x){
   echo $x . "
"; } ?>
1 chấp nhận chức năng gọi lại và một mảng. Nó áp dụng chức năng gọi lại cho từng phần tử và bao gồm các kết quả trong một mảng mới.

Ví dụ sau đây cho thấy cách nhân đôi mỗi số trong một mảng:

3

Làm thế nào nó hoạt động.

  • Đầu tiên, xác định một hàm có tên gọi là
     $y;
    });
    foreach ($arr as $x){
       echo $x . "
    "; } ?>
    3 để tăng gấp đôi số.
  • Thứ hai, xác định một mảng số nguyên.
  • Thứ ba, hãy gọi hàm
     $y;
    });
    foreach ($arr as $x){
       echo $x . "
    "; } ?>
    1 để nhân đôi từng phần tử của mảng
     $y;
    });
    foreach ($arr as $x){
       echo $x . "
    "; } ?>
    5.
  • Cuối cùng, hiển thị mảng kết quả.

Output:

4

Ví dụ này hoạt động hoàn toàn tốt. Tuy nhiên, nó khá dài dòng. Và hàm

 $y;
});
foreach ($arr as $x){
   echo $x . "
"; } ?>
3 có thể được sử dụng một lần.

Thay vào đó, ví dụ sau đây nhưng sử dụng chức năng ẩn danh: thay vào đó:

5

Phạm vi của hàm ẩn danh

Theo mặc định, một hàm ẩn danh không thể truy cập các biến từ phạm vi cha mẹ của nó. Ví dụ:

6

PHP đã đưa ra thông báo sau:

7

Trong ví dụ này, hàm ẩn danh cố gắng truy cập biến

 $y;
});
foreach ($arr as $x){
   echo $x . "
"; } ?>
7 từ phạm vi cha mẹ của nó. Tuy nhiên, nó không thể. Do đó, PHP đã đưa ra một thông báo.

Để sử dụng các biến từ phạm vi cha mẹ bên trong hàm ẩn danh, bạn đặt các biến trong cấu trúc

 $y;
});
foreach ($arr as $x){
   echo $x . "
"; } ?>
8 như sau:
8

Bây giờ, nó sẽ hoạt động chính xác.

Lưu ý rằng

 $y;
});
foreach ($arr as $x){
   echo $x . "
"; } ?>
7 được chuyển đến hàm ẩn danh theo giá trị, không phải bằng tham chiếu. Nếu bạn thay đổi nó bên trong hàm ẩn danh, thay đổi sẽ không phản ánh bên ngoài hàm. Ví dụ:
9

Trong ví dụ này, bên trong hàm ẩn danh Giá trị của

 $y;
});
foreach ($arr as $x){
   echo $x . "
"; } ?>
7 là
3
10
21
54
70
1. Tuy nhiên, bên ngoài hàm ẩn danh, giá trị của thông báo vẫn giống như
3
10
21
54
70
2.

Nếu bạn muốn chuyển một biến cho một hàm ẩn danh bằng cách tham chiếu, bạn cần sử dụng toán tử

3
10
21
54
70
3 như ví dụ sau:
cube of 3 = 27
0

Bây giờ, bạn thấy các tin nhắn

3
10
21
54
70
1 hai lần.

Trả về một hàm ẩn danh từ một hàm

Ví dụ sau đây minh họa cách trả về một hàm ẩn danh từ một hàm:

cube of 3 = 27
1

Làm thế nào nó hoạt động.

  • Đầu tiên, xác định một hàm gọi là
    3
    10
    21
    54
    70
    5 trả về hàm ẩn danh.
  • Thứ hai, gọi hàm
    3
    10
    21
    54
    70
    6 và gán giá trị trả về của nó cho biến
    3
    10
    21
    54
    70
    7. Vì giá trị trả về là một hàm, nó có thể được gọi giống như một hàm chính quy (
    3
    10
    21
    54
    70
    8).
  • Thứ ba, gọi hàm nhân và gán giá trị trả về của nó cho biến
    3
    10
    21
    54
    70
    9. Lần này chúng tôi đã vượt qua 3 thay vì 2.

Bản tóm tắt

  • Một hàm ẩn danh là một hàm không có tên.
  • Một hàm ẩn danh là một đối tượng đóng.
  • Để truy cập các biến từ phạm vi cha mẹ bên trong hàm ẩn danh, hãy đặt các biến trong cấu trúc
     $y;
    });
    foreach ($arr as $x){
       echo $x . "
    "; } ?>
    8.
  • Một hàm ẩn danh có thể được gán cho một biến, được chuyển đến một hàm hoặc được trả về từ một hàm.

Bạn có thấy hướng dẫn này hữu ích không?

Chức năng ẩn danh trong PHP đưa ra ví dụ là gì?

Hàm ẩn danh là một hàm mà không có bất kỳ tên do người dùng xác định. Một chức năng như vậy cũng được gọi là chức năng đóng hoặc lambda. Đôi khi, bạn có thể muốn một chức năng sử dụng một lần. Đóng cửa là một chức năng ẩn danh đóng cửa môi trường được xác định. Bạn cần chỉ định sử dụng từ khóa trong đó.a function without any user defined name. Such a function is also called closure or lambda function. Sometimes, you may want a function for one time use. Closure is an anonymous function which closes over the environment in which it is defined. You need to specify use keyword in it.

Chức năng ẩn danh có nghĩa là gì?

Các hàm ẩn danh thường là các đối số được truyền đến các hàm bậc cao hơn hoặc được sử dụng để xây dựng kết quả của hàm bậc cao hơn cần trả về một hàm. Nếu hàm chỉ được sử dụng một lần hoặc số lần giới hạn, hàm ẩn danh có thể nhẹ hơn so với sử dụng hàm được đặt tên.often arguments being passed to higher-order functions or used for constructing the result of a higher-order function that needs to return a function. If the function is only used once, or a limited number of times, an anonymous function may be syntactically lighter than using a named function.

Chức năng ẩn danh khác với hàm bình thường trong PHP như thế nào?

Có hai sự khác biệt tinh tế nhưng quan trọng giữa ví dụ trên và định nghĩa hàm chính quy: không có tên hàm giữa từ khóa chức năng và dấu ngoặc đơn mở ('('). Điều này cho PHP rằng bạn đang tạo hàm ẩn danh. CóMột dấu chấm phẩy sau định nghĩa chức năng.There is no function name between the function keyword and the opening parenthesis ( '(' ). This tells PHP that you're creating an anonymous function. There is a semicolon after the function definition.

Hàm ẩn danh giải thích nó với bất kỳ ví dụ phù hợp là gì?

Một hàm ẩn danh là một hàm được khai báo mà không có bất kỳ định danh có tên nào để chỉ nó.Như vậy, một hàm ẩn danh thường không thể truy cập được sau khi tạo ban đầu.Định nghĩa chức năng bình thường: function hello () {alert ('hello world');} xin chào();a function that was declared without any named identifier to refer to it. As such, an anonymous function is usually not accessible after its initial creation. Normal function definition: function hello() { alert('Hello world'); } hello();