Hàm ẩn danh trong PHP


myFunctionName[];
08


myFunctionName[];
09


myFunctionName[];
10


myFunctionName[];
11


myFunctionName[];
12


myFunctionName[];
13


myFunctionName[];
14


myFunctionName[];
15


myFunctionName[];
16


myFunctionName[];
17

Trong hướng dẫn này, bạn sẽ khám phá các hàm ẩn danh trong PHP. Các hàm ẩn danh là một tính năng PHP mà bạn có thể sẽ không sử dụng thường xuyên;

Bạn sẽ xem xét các khái niệm sau trong hướng dẫn này

  • Chức năng ẩn danh là gì và cách bạn tạo chúng
  • Cách gán hàm ẩn danh cho biến
  • Cách gọi hàm ẩn danh
  • Sử dụng các hàm ẩn danh để tạo các cuộc gọi lại gọn gàng hơn và
  • Tạo bao đóng với các chức năng ẩn danh

Bạn đã sẵn sàng đi sâu vào các hàm ẩn danh trong PHP chưa?

Chức năng ẩn danh giải thích

Như bạn có thể biết, bạn định nghĩa một hàm thông thường trong PHP như thế này


function myFunctionName[] {
  // [Your function code goes here]
}

Khi bạn định nghĩa một hàm, bạn đặt tên cho nó [


myFunctionName[];
7 trong ví dụ trên]. PHP sau đó cho phép mã của bạn tham chiếu đến chức năng này bằng tên của nó. Ví dụ: bạn có thể gọi chức năng của mình như thế này


myFunctionName[];

Các hàm ẩn danh tương tự như các hàm thông thường, ở chỗ chúng chứa một khối mã được chạy khi chúng được gọi. Họ cũng có thể chấp nhận đối số và trả về giá trị

Điểm khác biệt chính - như tên gọi của chúng - là các hàm ẩn danh không có tên. Đây là một ví dụ mã tạo một chức năng ẩn danh đơn giản

// Declare a basic anonymous function
// [not much use on its own!]
function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};

Có hai điểm khác biệt nhỏ nhưng quan trọng giữa ví dụ trên và định nghĩa hàm thông thường

  1. Không có tên hàm giữa từ khóa
    
    myFunctionName[];
    
    8 và dấu ngoặc đơn mở [
    
    myFunctionName[];
    
    9]. Điều này cho PHP biết rằng bạn đang tạo một hàm ẩn danh
  2. Có dấu chấm phẩy sau định nghĩa hàm. Điều này là do các định nghĩa hàm ẩn danh là các biểu thức, trong khi các định nghĩa hàm thông thường là các cấu trúc mã

Mặc dù đoạn mã trên hoàn toàn hợp lệ, nhưng nó không hữu ích lắm. Vì hàm ẩn danh không có tên nên bạn không thể tham chiếu nó ở bất kỳ nơi nào khác trong mã của mình, vì vậy nó không bao giờ có thể được gọi

Tuy nhiên, vì một hàm ẩn danh là một biểu thức — giống như một số hoặc một chuỗi — bạn có thể thực hiện nhiều việc hữu ích khác nhau với nó. Ví dụ, bạn có thể

  • Gán nó cho một biến, sau đó gọi nó sau bằng cách sử dụng tên của biến. Bạn thậm chí có thể lưu trữ một loạt các chức năng ẩn danh khác nhau trong một mảng
  • Truyền nó cho một chức năng khác mà sau đó có thể gọi nó sau. Điều này đượ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 các biến của hàm bên ngoài. Điều này được gọi là đóng cửa

Bạn sẽ khám phá ba kỹ thuật này trong phần còn lại của hướng dẫn này

Gán các hàm ẩn danh cho các biến

Khi bạn xác định một hàm ẩn danh, thì bạn có thể lưu trữ nó trong một biến, giống như bất kỳ giá trị nào khác. Đây là một ví dụ

// Assign an anonymous function to a variable
$makeGreeting = function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};

Khi bạn đã hoàn thành việc đó, bạn có thể gọi hàm bằng tên của biến, giống như bạn gọi một hàm thông thường

// Call the anonymous function
echo $makeGreeting[ "Fred", "morning" ] . "
"; echo $makeGreeting[ "Mary", "afternoon" ] . "
";

Điều này tạo ra đầu ra

________số 8

Bạn thậm chí có thể lưu trữ một số chức năng bên trong một mảng, như thế này

// Store 3 anonymous functions in an array
$luckyDip = array[

  function[] {
    echo "You got a bag of toffees!";
  },

  function[] {
    echo "You got a toy car!";
  },

  function[] {
    echo "You got some balloons!";
  }
];

Khi bạn đã hoàn thành việc đó, mã của bạn có thể quyết định gọi chức năng nào trong thời gian chạy. Ví dụ, nó có thể gọi một hàm ngẫu nhiên


myFunctionName[];
0

Sử dụng các chức năng ẩn danh làm cuộc gọi lại

Một cách sử dụng phổ biến của các hàm ẩn danh là tạo các hàm gọi lại nội tuyến đơn giản. Hàm gọi lại là hàm do bạn tự tạo, sau đó chuyển sang hàm khác làm đối số. Khi nó có quyền truy cập vào chức năng gọi lại của bạn, thì chức năng nhận có thể gọi nó bất cứ khi nào nó cần. Điều này cung cấp cho bạn một cách dễ dàng để tùy chỉnh hành vi của chức năng nhận

Nhiều hàm PHP tích hợp chấp nhận các cuộc gọi lại và bạn cũng có thể viết các hàm chấp nhận cuộc gọi lại của riêng mình. Hãy xem xét một vài chức năng tích hợp sử dụng gọi lại và xem cách sử dụng chúng

Sử dụng
// Declare a basic anonymous function
// [not much use on its own!]
function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
0] để chạy hàm gọi lại trên từng phần tử trong một mảng

Hàm

// Declare a basic anonymous function
// [not much use on its own!]
function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
1 của PHP chấp nhận hàm gọi lại và một mảng làm đối số. Sau đó nó đi qua các phần tử trong mảng. Đối với mỗi phần tử, nó gọi hàm gọi lại của bạn với giá trị của phần tử và hàm gọi lại của bạn cần trả về giá trị mới để sử dụng cho phần tử.
// Declare a basic anonymous function
// [not much use on its own!]
function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
1 sau đó thay thế giá trị của phần tử bằng giá trị trả về của cuộc gọi lại của bạn. Sau khi hoàn tất,
// Declare a basic anonymous function
// [not much use on its own!]
function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
1 trả về mảng đã sửa đổi

// Declare a basic anonymous function
// [not much use on its own!]
function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
1 hoạt động trên một bản sao của mảng mà bạn chuyển đến nó. Mảng ban đầu không bị ảnh hưởng

Đây là cách bạn có thể sử dụng

// Declare a basic anonymous function
// [not much use on its own!]
function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
1 với chức năng gọi lại thông thường


myFunctionName[];
7

Mã này tạo một hàm thông thường,

// Declare a basic anonymous function
// [not much use on its own!]
function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
6, nhận vào một chuỗi, ________ 37, viết hoa chữ cái đầu tiên, thêm vào trước ________ 38 và trả về kết quả. Sau đó, ở dòng 8, mã chuyển hàm gọi lại này tới
// Declare a basic anonymous function
// [not much use on its own!]
function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
1, cùng với một mảng tên để làm việc và hiển thị kết quả


myFunctionName[];
2

Trong khi đoạn mã này hoạt động, sẽ hơi rườm rà khi tạo một hàm thông thường riêng biệt chỉ để hoạt động như một lệnh gọi lại đơn giản như thế này. Thay vào đó, chúng tôi có thể tạo cuộc gọi lại của mình dưới dạng một chức năng ẩn danh nội tuyến tại thời điểm chúng tôi gọi

// Declare a basic anonymous function
// [not much use on its own!]
function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
1, như sau


myFunctionName[];
0

Cách tiếp cận này giúp tiết kiệm một dòng mã, nhưng quan trọng hơn, nó tránh làm lộn xộn tệp PHP bằng một hàm thông thường riêng biệt chỉ được sử dụng làm lệnh gọi lại một lần

Sắp xếp mảng tùy chỉnh với
// Assign an anonymous function to a variable
$makeGreeting = function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
1

Một cách sử dụng gọi lại phổ biến khác là với hàm

// Assign an anonymous function to a variable
$makeGreeting = function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
1 của PHP. Hàm này cho phép bạn sắp xếp các mảng bằng cách sử dụng hàm gọi lại sắp xếp mà bạn tự viết. Điều này đặc biệt hữu ích nếu bạn cần sắp xếp một mảng đối tượng hoặc mảng kết hợp, vì chỉ bạn, với tư cách là người viết mã, mới biết cách tốt nhất để sắp xếp các cấu trúc phức tạp như vậy

Hãy tạo một mảng gồm các mảng kết hợp, trong đó mỗi mảng kết hợp có khóa

// Assign an anonymous function to a variable
$makeGreeting = function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
3 và khóa
// Assign an anonymous function to a variable
$makeGreeting = function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
4


myFunctionName[];
1

Bây giờ, giả sử chúng ta muốn sắp xếp mảng theo thứ tự tăng dần của tuổi. Chúng ta không thể sử dụng các hàm sắp xếp mảng thông thường của PHP, vì chúng không biết gì về khóa

// Assign an anonymous function to a variable
$makeGreeting = function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
4. Thay vào đó, chúng ta có thể gọi
// Assign an anonymous function to a variable
$makeGreeting = function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
1 và chuyển vào một hàm gọi lại ẩn danh để sắp xếp mảng theo độ tuổi, như thế này


myFunctionName[];
2

Điều này tạo ra kết quả chúng tôi muốn


myFunctionName[];
3

Tạo bao đóng với các chức năng ẩn danh

Một cách sử dụng phổ biến khác của các hàm ẩn danh là tạo các bao đóng. Bao đóng là một hàm giữ lại quyền truy cập vào các biến trong phạm vi kèm theo của nó, ngay cả khi phạm vi đó đã biến mất

Ví dụ

  1. Một hàm,
    // Assign an anonymous function to a variable
    $makeGreeting = function[ $name, $timeOfDay ] {
      return [ "Good $timeOfDay, $name!" ];
    };
    
    7, chứa một biến cục bộ [hoặc tham số] có tên là
    // Assign an anonymous function to a variable
    $makeGreeting = function[ $name, $timeOfDay ] {
      return [ "Good $timeOfDay, $name!" ];
    };
    
    8
  2. Hàm này cũng định nghĩa và trả về một hàm ẩn danh truy cập vào
    // Assign an anonymous function to a variable
    $makeGreeting = function[ $name, $timeOfDay ] {
      return [ "Good $timeOfDay, $name!" ];
    };
    
    8
  3. Một số mã khác gọi
    // Assign an anonymous function to a variable
    $makeGreeting = function[ $name, $timeOfDay ] {
      return [ "Good $timeOfDay, $name!" ];
    };
    
    7 và lấy lại chức năng ẩn danh mà nó lưu trữ trong
    // Call the anonymous function
    echo $makeGreeting[ "Fred", "morning" ] . "
    "; echo $makeGreeting[ "Mary", "afternoon" ] . "
    ";
    1. Đến thời điểm này, tất nhiên,
    // Assign an anonymous function to a variable
    $makeGreeting = function[ $name, $timeOfDay ] {
      return [ "Good $timeOfDay, $name!" ];
    };
    
    7 đã chạy xong
  4. Nếu mã bây giờ gọi
    // Call the anonymous function
    echo $makeGreeting[ "Fred", "morning" ] . "
    "; echo $makeGreeting[ "Mary", "afternoon" ] . "
    ";
    3, thì hàm ẩn danh vẫn có thể truy cập biến cục bộ
    // Assign an anonymous function to a variable
    $makeGreeting = function[ $name, $timeOfDay ] {
      return [ "Good $timeOfDay, $name!" ];
    };
    
    8 trong
    // Assign an anonymous function to a variable
    $makeGreeting = function[ $name, $timeOfDay ] {
      return [ "Good $timeOfDay, $name!" ];
    };
    
    7, mặc dù
    // Assign an anonymous function to a variable
    $makeGreeting = function[ $name, $timeOfDay ] {
      return [ "Good $timeOfDay, $name!" ];
    };
    
    7 không còn chạy nữa. Hàm ẩn danh, cùng với tham chiếu của nó đến biến
    // Assign an anonymous function to a variable
    $makeGreeting = function[ $name, $timeOfDay ] {
      return [ "Good $timeOfDay, $name!" ];
    };
    
    8, tạo thành một bao đóng

Khá khó hiểu, hướng dẫn sử dụng PHP đề cập đến các hàm ẩn danh như các bao đóng. Chúng không giống nhau. Các hàm ẩn danh được sử dụng để tạo các bao đóng

Lúc đầu, các bao đóng có thể khó hiểu, nhưng một khi bạn nắm bắt được khái niệm này, chúng cho phép bạn viết mã rõ ràng, mạnh mẽ và linh hoạt. Hãy xem xét một vài ví dụ về đóng cửa để làm cho mọi thứ rõ ràng hơn

Đóng cửa đơn giản

Chúng ta sẽ bắt đầu bằng cách tạo một bao đóng rất đơn giản bằng cách sử dụng hàm ẩn danh


myFunctionName[];
4

Hãy xem qua mã này

  1. // Call the anonymous function
    echo $makeGreeting[ "Fred", "morning" ] . "
    "; echo $makeGreeting[ "Mary", "afternoon" ] . "
    ";
    8
    // Call the anonymous function
    echo $makeGreeting[ "Fred", "morning" ] . "
    "; echo $makeGreeting[ "Mary", "afternoon" ] . "
    ";
    8 khởi tạo một biến cục bộ,
    Good morning, Fred!
    Good afternoon, Mary!
    
    0, trên dòng 5 và trên các dòng 7-10, nó cũng định nghĩa và trả về một hàm ẩn danh [được mô tả bên dưới].
  2. Hàm ẩn danh
    Trên dòng 8, hàm ẩn danh thao tác với biến cục bộ
    Good morning, Fred!
    Good afternoon, Mary!
    
    0 của
    // Call the anonymous function
    echo $makeGreeting[ "Fred", "morning" ] . "
    "; echo $makeGreeting[ "Mary", "afternoon" ] . "
    ";
    8 bằng cách chuyển đổi chữ cái đầu tiên thành chữ hoa và trên dòng 9, hàm này trả về một chuỗi lời chào có chứa .
      • Từ khóa
        Good morning, Fred!
        Good afternoon, Mary!
        
        4
        Thông thường, hàm ẩn danh sẽ không có quyền truy cập vào biến
        Good morning, Fred!
        Good afternoon, Mary!
        
        0, vì biến đó chỉ cục bộ trong phạm vi của
        // Call the anonymous function
        echo $makeGreeting[ "Fred", "morning" ] . "
        "; echo $makeGreeting[ "Mary", "afternoon" ] . "
        ";
        8. Tuy nhiên, từ khóa
        Good morning, Fred!
        Good afternoon, Mary!
        
        4 trên dòng 7 yêu cầu PHP cho phép hàm ẩn danh truy cập
        Good morning, Fred!
        Good afternoon, Mary!
        
        0. Điều này cho phép chúng tôi tạo ra sự đóng cửa.
      • Dấu và
        Dấu và [
        Good morning, Fred!
        Good afternoon, Mary!
        
        9] trước
        Good morning, Fred!
        Good afternoon, Mary!
        
        0 yêu cầu PHP chuyển tham chiếu đến biến
        Good morning, Fred!
        Good afternoon, Mary!
        
        0 vào hàm ẩn danh, thay vì chỉ sao chép giá trị của biến. Điều này cho phép chức năng ẩn danh thao tác trực tiếp với
        Good morning, Fred!
        Good afternoon, Mary!
        
        0. Nói một cách chính xác, hàm của bao đóng phải luôn truy cập các biến trong phạm vi kèm theo của nó bằng cách tham chiếu. Điều đó nói rằng, nếu bạn biết rằng bạn sẽ không cần thay đổi giá trị của một biến thì bạn có thể bỏ qua dấu và để chuyển biến theo giá trị thay thế.
  3. Gọi
    // Call the anonymous function
    echo $makeGreeting[ "Fred", "morning" ] . "
    "; echo $makeGreeting[ "Mary", "afternoon" ] . "
    ";
    8
    Ở dòng 13, chúng tôi gọi
    // Call the anonymous function
    echo $makeGreeting[ "Fred", "morning" ] . "
    "; echo $makeGreeting[ "Mary", "afternoon" ] . "
    ";
    8 và lấy lại hàm ẩn danh được trả về, mà chúng tôi lưu trữ trong biến
    // Store 3 anonymous functions in an array
    $luckyDip = array[
    
      function[] {
        echo "You got a bag of toffees!";
      },
    
      function[] {
        echo "You got a toy car!";
      },
    
      function[] {
        echo "You got some balloons!";
      }
    ];
    
    5.

    Lưu ý rằng, đến thời điểm này,

    // Call the anonymous function
    echo $makeGreeting[ "Fred", "morning" ] . "
    "; echo $makeGreeting[ "Mary", "afternoon" ] . "
    ";
    8 đã chạy xong. Trong trường hợp bình thường, biến cục bộ của nó,
    Good morning, Fred!
    Good afternoon, Mary!
    
    0, sẽ nằm ngoài phạm vi và biến mất. Tuy nhiên, vì chúng ta đã tạo một bao đóng bằng cách sử dụng hàm ẩn danh [hiện được lưu trữ trong
    // Store 3 anonymous functions in an array
    $luckyDip = array[
    
      function[] {
        echo "You got a bag of toffees!";
      },
    
      function[] {
        echo "You got a toy car!";
      },
    
      function[] {
        echo "You got some balloons!";
      }
    ];
    
    5], nên hàm ẩn danh vẫn có thể truy cập biến
    Good morning, Fred!
    Good afternoon, Mary!
    
    0 này

  4. Gọi hàm ẩn danh
    Ở dòng 14, chúng ta gọi hàm ẩn danh. Nó thao tác giá trị của biến
    
    myFunctionName[];
    
    00 bên trong bao đóng bằng cách chuyển đổi chữ cái đầu tiên của nó thành chữ hoa, sau đó nó trả về lời chào chứa giá trị mới của
    Good morning, Fred!
    Good afternoon, Mary!
    
    0, đó là
    
    myFunctionName[];
    
    02.

Tóm lại, đó là cách bạn tạo một bao đóng trong PHP. Đó là một ví dụ tầm thường, nhưng điểm quan trọng cần lưu ý là hàm ẩn danh được trả về vẫn có thể truy cập biến cục bộ

Good morning, Fred!
Good afternoon, Mary!
0 của hàm kèm theo, ngay cả sau khi hàm kèm theo đã chạy xong

Sử dụng các bao đóng để chuyển dữ liệu bổ sung cho các cuộc gọi lại

Bây giờ chúng ta đã biết cách tạo bao đóng, hãy xem cách sử dụng chúng trong thực tế phổ biến

Khi bạn chuyển một hàm gọi lại cho hàm PHP

// Assign an anonymous function to a variable
$makeGreeting = function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
1 và
// Assign an anonymous function to a variable
$makeGreeting = function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
1 gọi hàm gọi lại của bạn, hàm gọi lại sẽ nhận được hai đối số được truyền cho nó bởi
// Assign an anonymous function to a variable
$makeGreeting = function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
1 — tức là hai giá trị trong mảng để so sánh

Nhưng nếu bạn muốn chức năng gọi lại của mình nhận thêm thông tin thì sao?

Tuy nhiên,

// Assign an anonymous function to a variable
$makeGreeting = function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
1 — không phải chúng tôi — gọi cuộc gọi lại của chúng tôi. Vì nó được gọi trong phạm vi của
// Assign an anonymous function to a variable
$makeGreeting = function[ $name, $timeOfDay ] {
  return [ "Good $timeOfDay, $name!" ];
};
1, chúng tôi không có cơ hội chuyển các đối số bổ sung cho cuộc gọi lại tại thời điểm nó được gọi

Đóng cửa để giải cứu. Bằng cách trả về hàm gọi lại của chúng ta từ bên trong một hàm khác và tạo một bao đóng, chúng ta có thể yêu cầu hàm bên ngoài chấp nhận


myFunctionName[];
08 làm tham số, sau đó chuyển

myFunctionName[];
08 cho hàm gọi lại bên trong bao đóng. Đây là mã hoàn chỉnh


myFunctionName[];
5

Mã này hiển thị đầu ra dự kiến


myFunctionName[];
6

Hãy xem qua mã này để xem nó hoạt động như thế nào

    1. Tạo một mảng người.
      Đầu tiên, chúng ta tạo mảng người thông thường. Mỗi người được đại diện bởi một mảng kết hợp với hai khóa.
      
      myFunctionName[];
      
      09 và
      
      myFunctionName[];
      
      70.
    2. Xác định
      
      myFunctionName[];
      
      77.
      Tiếp theo, chúng ta định nghĩa một hàm thông thường,
      
      myFunctionName[];
      
      77, chấp nhận tham số
      
      myFunctionName[];
      
      08. Đây là khóa mà chúng tôi muốn chức năng gọi lại sắp xếp của mình sử dụng. Trong vòng
      
      myFunctionName[];
      
      77, chúng tôi…
    3. Tạo phần đóng.
      Trên các dòng 8-10,
      
      myFunctionName[];
      
      77 định nghĩa và trả về một hàm ẩn danh, là hàm sắp xếp mà chúng ta sẽ chuyển cho
      // Assign an anonymous function to a variable
      $makeGreeting = function[ $name, $timeOfDay ] {
        return [ "Good $timeOfDay, $name!" ];
      };
      
      1. Hàm ẩn danh chấp nhận hai phần tử mảng thông thường để sắp xếp —
      
      myFunctionName[];
      
      23 và
      
      myFunctionName[];
      
      24 — nhưng nó cũng sử dụng từ khóa
      Good morning, Fred!
      Good afternoon, Mary!
      
      4 để truy cập tham số
      
      myFunctionName[];
      
      08, nằm trong phạm vi của hàm
      
      myFunctionName[];
      
      77 kèm theo. Điều này tạo ra sự đóng cửa. Sau đó, nó sử dụng
      
      myFunctionName[];
      
      08 để xác định khóa nào sẽ được sử dụng để so sánh [hoặc là
      
      myFunctionName[];
      
      09 hoặc là
      
      myFunctionName[];
      
      70].

      Nhớ. Vì chúng ta đã tạo một bao đóng nên hàm ẩn danh vẫn có quyền truy cập vào giá trị của tham số

      
      myFunctionName[];
      
      08 sau khi
      
      myFunctionName[];
      
      77 chạy xong

    4. Sắp xếp mảng.
      Cuối cùng mã của chúng ta sắp xếp mảng, đầu tiên là theo tên và sau đó là theo tuổi. Để làm điều này, nó gọi
      
      myFunctionName[];
      
      77, chuyển khóa để sắp xếp theo [
      
      myFunctionName[];
      
      09 hoặc
      
      myFunctionName[];
      
      70].
      
      myFunctionName[];
      
      77 sau đó trả về một hàm sắp xếp ẩn danh thích hợp sử dụng khóa sắp xếp được cung cấp. Đoạn mã sau đó chuyển hàm ẩn danh này tới
      // Assign an anonymous function to a variable
      $makeGreeting = function[ $name, $timeOfDay ] {
        return [ "Good $timeOfDay, $name!" ];
      };
      
      1, cùng với mảng để sắp xếp.

Bạn có thể sử dụng thủ thuật này bất cứ lúc nào bạn cần chuyển dữ liệu bổ sung cho hàm gọi lại

Đóng cửa là một chủ đề khá rộng và tinh tế. Nếu bạn không quen thuộc với chúng, hãy xem các bài viết hay sau đây về hàm ẩn danh và bao đóng trong PHP cũng như bao đóng và hàm lambda, giải thích chi tiết chính xác bao đóng là gì [và không phải là bao đóng]

Tóm lược

Trong hướng dẫn này, bạn đã xem xét các hàm ẩn danh trong PHP và xem cách sử dụng chúng trong các tình huống khác nhau. Bạn đã học

      • Đó là một hàm ẩn danh giống như một hàm thông thường, ngoại trừ nó không có tên và là một biểu thức chứ không phải là một cấu trúc mã
      • Cách gán một hàm ẩn danh cho một biến và cách gọi hàm ẩn danh bằng cách sử dụng biến
      • Các cách sử dụng các hàm ẩn danh nội tuyến làm hàm gọi lại để tạo mã gọn gàng hơn
      • Cách tạo bao đóng bằng hàm ẩn danh. Các bao đóng hữu ích cho nhiều thứ, bao gồm làm cho mã dễ đọc hơn, tránh các biến toàn cục và tạo các hàm gọi lại có thể tùy chỉnh

Tôi hy vọng bạn thấy hướng dẫn này hữu ích và giờ đây bạn cảm thấy tự tin khi tạo và sử dụng các hàm ẩn danh trong mã PHP của mình. Chúc vui vẻ

chức năng ẩn danh giải thích với ví dụ là gì?

Các hàm ẩn danh thường là các đối số được truyền cho các hàm bậc cao hơn hoặc được sử dụng để xây dựng kết quả của một hàm bậc cao hơn cần trả về một hàm. 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ào được gọi là ẩn danh?

Hàm ẩn danh là hàm không có bất kỳ tên nào được liên kết với nó . Thông thường chúng ta sử dụng từ khóa function trước tên hàm để định nghĩa một hàm trong JavaScript, tuy nhiên, trong các hàm ẩn danh trong JavaScript, chúng ta chỉ sử dụng từ khóa function mà không có tên hàm.

Lớp ẩn danh trong PHP là gì?

Như tên gợi ý, lớp ẩn danh là lớp không có tên . Nó có nghĩa là để sử dụng một lần và nếu một người cần xác định một lớp một cách nhanh chóng. Tính năng của lớp ẩn danh đã được giới thiệu từ phiên bản PHP 7. Định nghĩa của lớp ẩn danh nằm bên trong một biểu thức có kết quả là một đối tượng của lớp đó.

Tại sao sử dụng chức năng ẩn danh?

Ưu điểm của hàm ẩn danh là nó không phải được lưu trữ trong một tệp riêng biệt . Điều này có thể đơn giản hóa rất nhiều chương trình, vì các phép tính thường rất đơn giản và việc sử dụng các hàm ẩn danh làm giảm số lượng tệp mã cần thiết cho một chương trình.

Chủ Đề