Lambda Functions in PHP

July 24, 2008 by Bảo · 4 Comments
Filed under: Programming 

Phát hiện ra một chức năng mới nữa sẽ có trong PHP 5.3 là Lambda và Closures. Dành cho những ai chưa biết về Closures thì đây là một chức năng khá phổ biến trong Javascript (gần đây thì cũng được cài đặt trong .NET, Java và các ngôn ngữ khác).

Khi dùng PHP 5.3, cấu trúc sau sẽ là hợp lệ :

$lambda = function () { echo "Hello World!\n"; };

Và sau đó mình có thể gọi hàm này bằng cách :

$lambda ();
call_user_func ($lambda);
call_user_func_array ($lambda, array ());

Dĩ nhiên, chức năng này cũng có thể cài đặt tương tự ở phiên bản trước dùng create_function hoặc là eval. Tuy nhiên, khi dùng chức năng mới này sẽ có thêm các lợi thế sau :

  • Thực hiện nhanh hơn vì được biên dịch trực tiếp
  • Cho phép đóng gói biến hiệu quả hơn ( Closure Support )

Read more