Hướng dẫn php anonymous function() use multiple variables - hàm ẩn danh php () sử dụng nhiều biến
Php 5.3+ hỗ trợ các chức năng ẩn danh (mặc dù, nó hỗ trợ họ một chút khác nhau trong PHP 7.x+ về mặt ràng buộc). Tôi đang chạy php 5.6.x Show
Có một cú pháp cho phép nhiều đối số được chuyển đến một hàm ẩn danh (không cần sử dụng một mảng) được sử dụng làm cuộc gọi lại. Những ví dụ nào trong số này, nếu có, có thể trong PHP?callback. Which of these examples, if any, are possible in PHP? ví dụ 1
Ví dụ 2
Ví dụ 3 Chỉ vì tò mò, hình thức này có thể không?
Tôi đã nhìn vào hướng dẫn sử dụng PHP, nhưng không thấy những gì tôi đang tìm kiếm. Chức năng ẩn danh khác với hàm bình thường trong PHP như thế nào?callable parameters, but they have many other uses. Các hàm ẩn danh tương tự như các chức năng thông thường, trong đó 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 các đối số và trả về các giá trị. Sự khác biệt chính - như tên của chúng ngụ ý - là các hàm ẩn danh không có tên.Closure class. Các hàm ẩn danh, còn được gọi là
Các chức năng ẩn danh được thực hiện bằng cách sử dụng lớp đóng.Closure internal class. Assigning a closure to a variable uses the same syntax as any other assignment, including the trailing semicolon: Ví dụ #1 Chức năng ẩn danh
Đóng cửa cũng có thể được sử dụng làm giá trị của các biến; PHP tự động chuyển đổi các biểu thức như vậy thành các phiên bản của lớp nội bộ đóng. Việc gán một đóng cho một biến sử dụng cùng một cú pháp như bất kỳ nhiệm vụ nào khác, bao gồm cả dấu chấm phẩy kéo dài: Ví dụ #2 ví dụ biến chức năng ẩn danh 1 Đóng cửa cũng có thể kế thừa các biến từ phạm vi cha mẹ. Bất kỳ biến nào như vậy phải được chuyển đến cấu trúc ngôn ngữ Notice: Undefined variable: message in /example.php on line 6 NULL string(5) "hello" string(5) "hello" string(5) "hello" string(5) "world" string(11) "hello world" string(11) "hello world" Ví dụ #3 kế thừa các biến từ phạm vi cha mẹ Ví dụ trên sẽ xuất ra một cái gì đó tương tự như: Kể từ Php 8.0.0, danh sách các biến được sử dụng phạm vi có thể bao gồm dấu phẩy kéo dài, sẽ bị bỏ qua. 2 3 4Việc kế thừa các biến từ phạm vi cha mẹ không giống như sử dụng các biến toàn cầu. Các biến toàn cầu tồn tại trong phạm vi toàn cầu, giống nhau cho dù chức năng nào đang thực thi. Phạm vi cha mẹ của việc đóng là hàm trong đó việc đóng được khai báo (không nhất thiết là hàm được gọi từ). Xem ví dụ sau: 6Ví dụ #4 đóng cửa và phạm vi Ví dụ #5 Liên kết tự động của 5Ví dụ trên sẽ xuất ra:Khi được khai báo trong bối cảnh của một lớp, lớp hiện tại sẽ tự động bị ràng buộc với nó, cung cấp 5 có sẵn bên trong phạm vi của hàm. Nếu không liên kết tự động này của lớp hiện tại là không muốn, thì các hàm ẩn danh tĩnh có thể được sử dụng thay thế.Chức năng ẩn danh tĩnh 9Ví dụ #4 đóng cửa và phạm vi Notice: Undefined variable: this in %s on line %d NULL Ví dụ #5 Liên kết tự động của 0 1 2Ví dụ #4 đóng cửa và phạm vi Warning: Cannot bind an instance to a static closure in %s on line %d Ví dụ #5 Liên kết tự động của function () use ($string, $min, $max) { // Not seeing this in the manual. $length = mb_strlen($string, 'UTF-8'); return ($length >= $min) && ($length <= $max); } 5
orls ¶ ¶ 12 năm trước 3 4 5 6 7Dexen Dot Devries tại Gmail Dot Com ¶ ¶ 4 năm trước 8 9Notice: Undefined variable: message in /example.php on line 6 NULL string(5) "hello" string(5) "hello" string(5) "hello" string(5) "world" string(11) "hello world" string(11) "hello world"0 Notice: Undefined variable: message in /example.php on line 6 NULL string(5) "hello" string(5) "hello" string(5) "hello" string(5) "world" string(11) "hello world" string(11) "hello world"1 7Chao ¶ ¶ 8 năm trước Notice: Undefined variable: message in /example.php on line 6 NULL string(5) "hello" string(5) "hello" string(5) "hello" string(5) "world" string(11) "hello world" string(11) "hello world"3 Notice: Undefined variable: message in /example.php on line 6 NULL string(5) "hello" string(5) "hello" string(5) "hello" string(5) "world" string(11) "hello world" string(11) "hello world"4 7Erolmon Dot Kskn tại Gmail Dot Com ¶ ¶ 7 năm trước Notice: Undefined variable: message in /example.php on line 6 NULL string(5) "hello" string(5) "hello" string(5) "hello" string(5) "world" string(11) "hello world" string(11) "hello world"6 toonitw tại gmail dot com ¶ ¶ 4 năm trước Notice: Undefined variable: message in /example.php on line 6 NULL string(5) "hello" string(5) "hello" string(5) "hello" string(5) "world" string(11) "hello world" string(11) "hello world"7 Notice: Undefined variable: message in /example.php on line 6 NULL string(5) "hello" string(5) "hello" string(5) "hello" string(5) "world" string(11) "hello world" string(11) "hello world"8 7Chao ¶ ¶ 12 năm trước Notice: Undefined variable: this in %s on line %d NULL0 Notice: Undefined variable: this in %s on line %d NULL1 Notice: Undefined variable: this in %s on line %d NULL2 Notice: Undefined variable: this in %s on line %d NULL3 Dexen Dot Devries tại Gmail Dot Com ¶ ¶ 4 năm trước Notice: Undefined variable: this in %s on line %d NULL4 Notice: Undefined variable: this in %s on line %d NULL5 Notice: Undefined variable: this in %s on line %d NULL6 Notice: Undefined variable: this in %s on line %d NULL7 Notice: Undefined variable: this in %s on line %d NULL8 Notice: Undefined variable: this in %s on line %d NULL9 Chao ¶ ¶ 8 năm trước Warning: Cannot bind an instance to a static closure in %s on line %d0 Erolmon Dot Kskn tại Gmail Dot Com ¶ ¶ 7 năm trước Warning: Cannot bind an instance to a static closure in %s on line %d1 Warning: Cannot bind an instance to a static closure in %s on line %d2 Warning: Cannot bind an instance to a static closure in %s on line %d3 Warning: Cannot bind an instance to a static closure in %s on line %d4 7toonitw tại gmail dot com ¶ ¶ cướp tại Ubrio dot chúng tôi ¶ Warning: Cannot bind an instance to a static closure in %s on line %d6 Warning: Cannot bind an instance to a static closure in %s on line %d7 Warning: Cannot bind an instance to a static closure in %s on line %d8 Warning: Cannot bind an instance to a static closure in %s on line %d9
7Một schaffhirt dot tại sedna-soft dot de ¶ ¶ 8 năm trước
closures 5Erolmon Dot Kskn tại Gmail Dot Com ¶ ¶ cướp tại Ubrio dot chúng tôi ¶
7Một schaffhirt dot tại sedna-soft dot de ¶ ¶ 8 năm trước
7Erolmon Dot Kskn tại Gmail Dot Com ¶ ¶ 4 năm trước
7Chao ¶ ¶ 12 năm trước
$greet = function($name) 58 năm trước ¶ Erolmon Dot Kskn tại Gmail Dot Com ¶
$greet = function($name) 8Làm thế nào bạn có thể chuyển một biến cục bộ cho một hàm ẩn danh trong PHP?Có, sử dụng đóng cửa: functionName ($ someargument, function () sử dụng (& $ biến) {$ varable = "something";}); Lưu ý rằng để bạn có thể sửa đổi $ biến và truy xuất giá trị được sửa đổi bên ngoài phạm vi của hàm ẩn danh, nó phải được tham chiếu trong phần đóng bằng cách sử dụng &. Nó mới!use a closure: functionName($someArgument, function() use(&$variable) { $variable = "something"; }); Note that in order for you to be able to modify $variable and retrieve the modified value outside of the scope of the anonymous function, it must be referenced in the closure using & . It's new!
Các chức năng ẩn danh có thể có đối số?Một hàm ẩn danh không thể truy cập được sau khi tạo ban đầu, nó chỉ có thể được truy cập bởi một biến mà nó được lưu trữ dưới dạng một hàm như một giá trị. Một hàm ẩn danh cũng có thể có nhiều đối số, nhưng chỉ có một biểu thức.An anonymous function can also have multiple arguments, but only one expression.
Hàm ẩn danh đưa ra ví dụ trong PHP là gì?Các chức năng ẩn danh được thực hiện bằng cách sử dụng lớp đóng.Ví dụ #1 Chức năng ẩn danh ví dụ.echo preg_replace_callback ('~-([a-z]) ~', function ($ match) {return strtoupper ($ match [1]);}, 'Hello-world');implemented using the Closure class. Example #1 Anonymous function example. echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world');
Chức năng ẩn danh khác với hàm bình thường trong PHP như thế nào?Các hàm ẩn danh tương tự như các chức năng thông thường, trong đó 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 các đối số và trả về các giá trị.Sự khác biệt chính - như tên của chúng ngụ ý - là các hàm ẩn danh không có tên.anonymous functions have no name. |