Tôi đã nghe nói về get_class_methods()
nhưng có cách nào trong PHP để thu thập một mảng của tất cả các phương thức công khai từ một lớp cụ thể không?PHP cách liệt kê tất cả các chức năng công khai của lớp
Trả lời
Có thể, hãy xem các lớp/phương pháp phản ánh.
http://php.net/manual/en/book.reflection.php và http://www.php.net/manual/en/reflectionclass.getmethods.php
$class = new ReflectionClass('Apple');
$methods = $class->getMethods(ReflectionMethod::IS_PUBLIC);
var_dump($methods);
i am đào đơn giản được gây ra bằng cách sử dụng các statics hơn là đi qua instantiation của Reflectionmethod – Kristian
Bạn đã thử cách này chưa?
$class_methods = get_class_methods(new myclass());
foreach ($class_methods as $method_name) {
echo "$method_name\n";
}
Tôi nghĩ Kristian đang yêu cầu cụ thể để liệt kê các phương pháp công khai. – Stegrex
Sau khi nhận được tất cả các phương pháp với get_class_methods($theClass)
bạn có thể lặp qua chúng với một cái gì đó như thế này:
foreach ($methods as $method) {
$reflect = new ReflectionMethod($theClass, $method);
if ($reflect->isPublic()) {
}
}
Như get_class_methods()
là phạm vi nhạy cảm, bạn có thể nhận được tất cả các phương thức công khai của một lớp học chỉ bằng cách gọi hàm từ bên ngoài phạm vi của lớp:
Vì vậy, hãy lớp này:
class Foo {
private function bar() {
var_dump(get_class_methods($this));
}
public function baz() {}
public function __construct() {
$this->bar();
}
}
var_dump(get_class_methods('Foo'));
chí đầu ra như sau:
array
0 => string 'baz' (length=3)
1 => string '__construct' (length=11)
Trong khi một cuộc gọi từ bên trong phạm vi của lớp (new Foo;
) sẽ quay trở lại:
array
0 => string 'bar' (length=3)
1 => string 'baz' (length=3)
2 => string '__construct' (length=11)
- 1. Chức năng của PHP để liệt kê tất cả các thuộc tính của đối tượng
- 2. Cách liệt kê tất cả các thuộc tính của lớp
- 3. công cụ linux để liệt kê tất cả các chức năng trong tệp nguồn?
- 4. Làm thế nào để viết một liệt kê của tất cả các chức năng tính toán?
- 5. Groovy Liệt kê tất cả các thuộc tính cho lớp
- 6. Liệt kê tất cả người dùng trong LDAP bằng PHP
- 7. Liệt kê tất cả virtualenv
- 8. Liệt kê tất cả các chỉ mục
- 9. Psql liệt kê tất cả các bảng
- 10. PHP: Quấn tất cả các chức năng của một lớp trong một lớp con
- 11. Liệt kê tất cả các kho SVN
- 12. Liệt kê tất cả các gói con của gói
- 13. Liệt kê tất cả các hàm dựng sẵn trong javascript?
- 14. Eclipse: liệt kê các phương thức và biến của tất cả các lớp
- 15. Cách liệt kê tất cả các ngày giữa hai ngày
- 16. Có thể liệt kê tất cả các lớp PHP và các phương thức và thuộc tính của chúng?
- 17. Liệt kê tất cả các xử lý tệp đang mở?
- 18. Liệt kê tất cả các ổ đĩa vật lý (Windows)
- 19. Liệt kê tất cả các đối tượng của một lớp nhất định
- 20. Tôi có thể liệt kê tất cả các chức năng trong tập lệnh js nút của mình như thế nào?
- 21. Tự động liệt kê tất cả các thành viên của một lớp
- 22. Grep Regex: Liệt kê tất cả các dòng trừ
- 23. Liệt kê tất cả các hội đồng .NET có sẵn
- 24. Liệt kê tất cả các bảng trong postgresql information_schema
- 25. AppleScript - Liệt kê tất cả các phông chữ
- 26. Liệt kê tất cả hình ảnh của Google Map Marker
- 27. liệt kê tất cả các quy trình trong iOS 5.0.1
- 28. Liệt kê tất cả các trang web trong IIS C#
- 29. Liệt kê tất cả các thư mục trong thư mục
- 30. Applescript - liệt kê tất cả các ứng dụng đang chạy
Uhm, 'get_class_methods ($ class)' * là * một cách để thu thập một mảng của tất cả các phương thức công khai của một lớp cụ thể ... –
nếu bạn muốn sử dụng 'get_class_meth ods' để lấy phương pháp công khai ONLY, nó phải được sử dụng bên ngoài lớp .. – Federkun
get_class_methods ($ class) trả về tất cả các phương thức hoặc là công khai hoặc không có một từ khóa. Vì vậy, bất kỳ phương pháp riêng tư nào cũng sẽ không được trả lại – daslicht