Hướng dẫn how do you call a function from a string in php? - làm thế nào để bạn gọi một hàm từ một chuỗi trong php?
Giải pháp: Sử dụng PHP7Lưu ý: Để biết phiên bản tóm tắt, xem TL; DR ở cuối câu trả lời. For a summarized version, see TL;DR at the end of the answer. Show
Phương pháp cũCập nhật: Một trong những phương pháp cũ được giải thích ở đây đã bị xóa. Tham khảo các câu trả lời khác để giải thích về các phương pháp khác, nó không được đề cập ở đây. Nhân tiện, nếu câu trả lời này không giúp bạn, bạn nên trả lại công cụ của mình. Hỗ trợ Php 5.6 đã kết thúc vào tháng 1 năm 2019 (hiện thậm chí cả Php 7.2 và 7.3 không được hỗ trợ). Xem các phiên bản được hỗ trợ để biết thêm thông tin.: One of the old methods explained here has been removed. Refer to other answers for explanation on other methods, it isn't covered here. By the way, if this answer doesn't help you, you should return upgrading your stuff. PHP 5.6 support has ended in January 2019 (now even PHP 7.2 and 7.3 are not being supported). See supported versions for more information. Như những người khác đã đề cập, trong PHP5 (và cả trong các phiên bản mới hơn như PHP7), chúng ta có thể sử dụng các biến làm tên hàm, sử dụng ____10 và 1, v.v.Phương pháp mớiKể từ PHP7, có những cách mới được giới thiệu: Lưu ý: Tất cả mọi thứ bên trong khung 2 brackets means one or more expressions to form something, e.g. 3
means expressions forming a function name.Chức năng động cuộc gọi: Tên chức năng trên đường bayChúng ta có thể tạo một tên hàm bên trong dấu ngoặc đơn chỉ trong một lần:
Ví dụ:
Lưu ý: Mặc dù việc loại bỏ các dấu ngoặc đơn xung quanh 4 is not an error, putting parentheses makes code more readable. However, you cannot do that sometimes, e.g. while using 5 operator. To be consistent, I recommend you to put the parentheses always.Gọi chức năng động: Thuộc tính có thể gọi đượcMột ví dụ hữu ích sẽ nằm trong bối cảnh của các đối tượng: nếu bạn đã lưu trữ một cuộc gọi trong một tài sản, bạn phải gọi nó theo cách này:
Như một ví dụ đơn giản:
Rõ ràng, gọi nó là 6 là sai đơn giản: bằng cách đó, bạn có nghĩa là gọi một phương thức có tên 7.Phương thức động cuộc gọi: Tên phương thức trên đường bayGiống như các cuộc gọi chức năng động, chúng ta có thể thực hiện theo cùng một cách với các cuộc gọi phương thức, được bao quanh bởi niềng răng xoăn thay vì dấu ngoặc đơn (để có các hình thức bổ sung, điều hướng đến phần TL; DR):
Xem nó trong một ví dụ:
Phương thức động cuộc gọi: Cú pháp mảngMột cách thanh lịch hơn được thêm vào trong PHP7 là như sau:
Ví dụ:
Lưu ý: Lợi ích của việc sử dụng phương pháp này so với phương pháp trước đó là, bạn không quan tâm đến loại cuộc gọi (nghĩa là nó có tĩnh hay không). The benefit of using this method over the previous one is that, you don't care about the call type (i.e. whether it's static or not). Lưu ý: Nếu bạn quan tâm đến hiệu suất (và tối ưu hóa vi mô), đừng sử dụng phương pháp này. Như tôi đã thử nghiệm, phương pháp này thực sự chậm hơn các phương pháp khác (hơn 10 lần). If you care about performance (and micro-optimizations), don't use this method. As I tested, this method is really slower than other methods (more than 10 times). Ví dụ bổ sung: Sử dụng các lớp ẩn danhLàm cho mọi thứ hơi phức tạp, bạn có thể sử dụng kết hợp các lớp ẩn danh và các tính năng trên:
TL; DR (Kết luận)Nói chung, trong PHP7, sử dụng các biểu mẫu sau đều có thể:
Đặc biệt cảm ơn Php nói chuyện này. Bạn có thể sử dụng một chuỗi để gọi một hàm không?Có hai phương thức để gọi một hàm từ chuỗi được lưu trữ trong một biến.Chế độ đầu tiên là bằng cách sử dụng phương thức đối tượng cửa sổ và phương thức thứ hai là bằng cách sử dụng phương thức eval ().. The first one is by using the window object method and the second one is by using eval() method.
Chức năng PHP nào tìm kiếm một văn bản cụ thể trong một chuỗi?Hàm strpos () tìm thấy vị trí của lần xuất hiện đầu tiên của một chuỗi bên trong chuỗi khác.Lưu ý: Hàm strpos () nhạy cảm trường hợp.strpos() function finds the position of the first occurrence of a string inside another string. Note: The strpos() function is case-sensitive.
Tôi có thể gọi một hàm bên trong một hàm khác PHP không?Nếu bạn muốn xác định các hàm trong hàm trong PHP, bạn có thể làm điều đó như thế này: function a () {function b () {echo 'i am b';} hàm c () {echo 'i là c';} } một();B ();c();Bạn phải gọi hàm cha trước, sau đó các chức năng bên trong.You must call the parent function first, then the functions inside.
Bạn có thể gọi một hàm trước khi nó được xác định PHP không?Ví dụ #3 Chức năng trong các chức năng Tất cả các chức năng và các lớp trong PHP có phạm vi toàn cầu - chúng có thể được gọi bên ngoài một hàm ngay cả khi chúng được xác định bên trong và ngược lại.they can be called outside a function even if they were defined inside and vice versa. |