Hướng dẫn can you pass functions as parameters in php? - bạn có thể chuyển các hàm dưới dạng tham số trong php không?
Được kiểm tra cho PHP 5.3 Show
Như tôi thấy ở đây, chức năng ẩn danh có thể giúp bạn: http://php.net/manual/en/funces.anonymous.php Những gì có thể bạn sẽ cần và nó không được nói trước đó là cách truyền một chức năng mà không gói nó vào trong một chức năng được tạo ra trên đường. Như bạn sẽ thấy sau này, bạn sẽ cần chuyển tên của hàm được viết trong một chuỗi dưới dạng tham số, hãy kiểm tra "khả năng gọi" của nó và sau đó gọi nó. Chức năng cần kiểm tra:
Sau đó, để gọi nó, sử dụng đoạn mã này (nếu bạn cũng cần tham số, hãy đặt chúng vào một mảng), được xem tại: http://php.net/manual/en/function.call-user-func.php
như nó theo sau (theo một cách tương tự, không tham số):
Đây là một lớp giải thích cách làm điều gì đó tương tự:
và một ví dụ về việc sử dụng rsperduta tại gmail dot com ¶ igorsantos07 tại gmail dot com ¶ John ¶ 0Dmitry Dot Balabka tại Gmail Dot Com ¶ Shaman_master tại danh sách dot ru ¶ 12 năm trướcChúng ta có thể chuyển chức năng như một tham số trong PHP không? Các hàm tham số PHP là các hàm với các tham số. Bạn có thể vượt qua bất kỳ số lượng tham số bên trong một hàm. Các tham số được truyền này hoạt động như các biến bên trong chức năng của bạn. Chúng được chỉ định bên trong dấu ngoặc đơn, sau tên hàm. Bạn có thể vượt qua các chức năng dưới dạng tham số không? 2Chuyển một hàm dưới dạng tham số cho một hàm khác C ++ có hai cách để truyền một hàm dưới dạng tham số. Như bạn thấy, bạn có thể sử dụng Hoạt động () hoặc hoạt động2 () để cho kết quả tương tự. Bạn có thể vượt qua một chức năng trong PHP không?Thông tin đối số chức năng PHP có thể được truyền đến các chức năng thông qua các đối số. Một đối số giống như một biến. Đối số được chỉ định sau tên hàm, bên trong dấu ngoặc đơn. Bạn có thể thêm nhiều đối số như bạn muốn, chỉ cần tách chúng bằng dấu phẩy. Có bao nhiêu cách bạn có thể chuyển tham số cho một hàm trong PHP? 4Có hai cách khác nhau để chuyển các tham số cho một hàm. Đầu tiên, và phổ biến hơn, là theo giá trị. Cái khác là bằng cách tham khảo. Making a cup of cappuccino. Making a cup of . Making a cup of espresso. Thông tin có thể được truyền đến các chức năng thông qua danh sách đối số, đây là danh sách các biểu thức được phân phối bằng dấu phẩy. Các đối số được đánh giá từ trái sang phải, trước khi hàm thực sự được gọi (đánh giá háo hức).arrays, the special type PHP hỗ trợ các đối số truyền theo giá trị (mặc định), đi qua tham chiếu và giá trị đối số mặc định. Danh sách đối số có độ dài thay đổi và các đối số được đặt tên cũng được hỗ trợ. 6Ví dụ số 1 chuyển mảng cho các chức năng 7Kể từ Php 8.0.0, danh sách các đối số chức năng có thể bao gồm dấu phẩy kéo dài, sẽ bị bỏ qua. Điều đó đặc biệt hữu ích trong trường hợp danh sách các đối số dài hoặc chứa các tên biến dài, làm cho nó thuận tiện để liệt kê các đối số theo chiều dọc. Lưu ý rằng bất kỳ đối số tùy chọn nên được chỉ định sau bất kỳ đối số bắt buộc nào, nếu không chúng không thể được bỏ qua khỏi các cuộc gọi. Xem xét ví dụ sau: Ví dụ #7 Sử dụng không chính xác đối số chức năng mặc định 8 9 0Ví dụ trên sẽ xuất ra: Fatal error: Uncaught ArgumentCountError: Too few arguments to function makeyogurt(), 1 passed in example.php on line 42 Bây giờ, so sánh những điều trên với điều này: Ví dụ #8 Sử dụng đúng đối số chức năng mặc định 1 9 3Ví dụ trên sẽ xuất ra: Making a bowl of raspberry yogurt. Bây giờ, so sánh những điều trên với điều này: Ví dụ #8 Sử dụng đúng đối số chức năng mặc định 4 5 6Ví dụ trên sẽ xuất ra: Making a bowl of raspberry natural yogurt. Bây giờ, so sánh những điều trên với điều này: Ví dụ #8 Sử dụng đúng đối số chức năng mặc định 9
Kể từ Php 8.0.0, tuyên bố các đối số bắt buộc sau khi các đối số tùy chọn bị phản đối. Điều này thường có thể được giải quyết bằng cách bỏ giá trị mặc định, vì nó sẽ không bao giờ được sử dụng. Một ngoại lệ cho quy tắc này là các đối số của Mẫu function funToBeCalled(){ print("----------------------i'm here"); } function wrapCaller($fun){ if( is_callable($fun)){ print("called"); call_user_func($fun); }else{ print($fun." not called"); } } wrapCaller("funToBeCalled"); wrapCaller("cannot call me"); 7, trong đó mặc định call_user_func_array( "string_holding_the_name_of_your_function", $arrayOfParameters ); 3 làm cho loại này không thể vượt qua được. Việc sử dụng này vẫn được phép, mặc dù nên sử dụng một loại có thể điều chỉnh rõ ràng.Ví dụ #10 Khai báo các đối số tùy chọn sau các đối số bắt buộc
Lưu ý: Các đối số được truyền qua tham chiếu có thể có giá trị mặc định. Danh sách đối số có độ dài thay đổi 4 5 6Ví dụ trên sẽ xuất ra: Bây giờ, so sánh những điều trên với điều này:array or Traversable variable or literal into the argument list: Ví dụ #8 Sử dụng đúng đối số chức năng mặc định 9 5 1Ví dụ trên sẽ xuất ra: Bây giờ, so sánh những điều trên với điều này: Ví dụ #8 Sử dụng đúng đối số chức năng mặc định Kể từ Php 8.0.0, các đối số được đặt tên có thể được sử dụng để bỏ qua nhiều tham số tùy chọn. 6Ví dụ trên sẽ xuất ra: 3 days Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2 Ví dụ #9 Sử dụng đúng đối số chức năng mặc định Kể từ Php 8.0.0, tuyên bố các đối số bắt buộc sau khi các đối số tùy chọn bị phản đối. Điều này thường có thể được giải quyết bằng cách bỏ giá trị mặc định, vì nó sẽ không bao giờ được sử dụng. Một ngoại lệ cho quy tắc này là các đối số của Mẫu function funToBeCalled(){
print("----------------------i'm here");
}
function wrapCaller($fun){
if( is_callable($fun)){
print("called");
call_user_func($fun);
}else{
print($fun." not called");
}
}
wrapCaller("funToBeCalled");
wrapCaller("cannot call me");
call_user_func_array( "string_holding_the_name_of_your_function", $arrayOfParameters );
|