Tôi có phương thức log() và muốn đăng nhập tên của tập lệnh được gọi. Làm thế nào là có thể trong PHP?Làm cách nào tôi có thể lấy tên của tập lệnh được gọi là chức năng?
Trả lời
Tùy thuộc vào môi trường gọi điện thoại, bạn nên có một cái nhìn tại debug_backtrace, và $_SERVER['PHP_SELF']
debug_backtrace()
sẽ cung cấp cho bạn một chồng dấu vết của bao gồm và chức năng gọi cho đến nay, và $_SERVER['PHP_SELF']
sẽ cho bạn biết kịch bản hiện đang thực hiện, đó là dễ dàng hơn và có thể làm việc chỉ là tốt cho những gì bạn muốn. $_SERVER['PHP_SELF']
sẽ luôn là kịch bản được gọi từ trình duyệt, ví dụ: nếu bạn có blah.com/admin.php
và blah.com/articles.php
cả hai được gọi là /pages.php
để có danh sách các trang được lưu trong blog hoặc nội dung nào đó sẽ cho bạn biết liệu admin.php
hoặc articles.php
có đang gọi tập lệnh hay không. Nhưng nếu pages.php
bao gồm functions.php
bao gồm libs.php
và libs.php không thành công và bạn muốn biết rằng functions.php
bao gồm nó, điều này sẽ không hoạt động - nhật ký vẫn hiển thị tập lệnh bắt đầu bao gồm (admin.php
hoặc articles.php
). Trong trường hợp này, bạn sẽ sử dụng debug_backtrace()
.
Cảm ơn 'debug_backtrace()'. Thật tuyệt vời! – neoDev
Bạn có thể có một cái nhìn tại debug_backtrace
chức năng: trong đó là đầu ra, bạn nên tìm những gì bạn đang tìm kiếm ;-)
Bạn có thể có một cái nhìn để this answer tôi đăng một vài ngày trước đây, để biết thêm thông tin và một ví dụ.
xem xét tất cả 'thông tin' trong liên kết đó! Tôi đang đào bới thông tin! lol – pythonian29033
Hãy xem debug_baktrace.
$backtrace = debug_backtrace();
print_r($backtrace[1]);
Sử dụng debug_backtrace() để nhận mảng liên kết chứa toàn bộ callstack và kiểm tra mảng để lấy chi tiết bạn quan tâm.
Ngoài các câu trả lời đã đưa ra một câu trả lời công nghệ rất thấp sẽ là hoặc thêm _ _ FILE _ _ hoặc basename() vào một chuỗi đang được ghi lại. (phải thêm dấu cách để tăng gấp đôi dấu gạch dưới trong FILE để hiển thị nó)
- 1. Java: Cách lấy tên chức năng người gọi
- 2. Cách lấy tên bí danh gọi tập lệnh bash
- 3. Làm cách nào để in các chức năng khi chúng được gọi là
- 4. Lấy tên của một chức năng được trang trí?
- 5. Chức năng javascript cuộc gọi có tên là biến
- 6. Chức năng không có đối số được gọi là gì?
- 7. Cách lấy tên hàm của con trỏ chức năng C
- 8. AngularJS: Từ một nhà máy, làm cách nào tôi có thể gọi một chức năng khác
- 9. Cụm từ 'Bật-di chuyển' không được nhận dạng là tên của lệnh ghép ngắn, chức năng, tập lệnh hoặc chương trình có thể hoạt động
- 10. Chức năng không được gọi là
- 11. Làm thế nào tôi có thể nhận được backtrace đầy đủ trong SpiderMonkey (JSAPI) từ chức năng reportError của tôi?
- 12. Làm cách nào tôi có thể đăng ký một chức năng để chỉ được gọi là * thành công * thoát khỏi chương trình Python của tôi?
- 13. Gọi một chức năng PowerShell cụ thể từ dòng lệnh
- 14. Có thể gọi hàm C, được đặt tên là chuỗi?
- 15. Làm thế nào tôi có thể nhận được tên của một chức năng gọi điện trong một mô-đun trong Mathematica?
- 16. 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?
- 17. Gọi chức năng của tập tin javascript bên ngoài
- 18. Lấy tên của tập lệnh hiện tại bằng Python
- 19. Lô (.bat): lấy tên của tập lệnh đầu tiên, không phải là tên hiện tại
- 20. Làm cách nào để có được đường dẫn của tập lệnh Python mà tôi đang chạy?
- 21. Chức năng bash có thể được sử dụng trong các tập lệnh khác nhau không?
- 22. Tìm ra tên tệp được gọi là hàm của tôi trong PHP
- 23. Làm cách nào để lấy tên tệp của tập lệnh thực thi ngọc bích
- 24. Tôi có thể lấy Uri của tập tin hình ảnh từ tên của nó không?
- 25. Làm thế nào để có được tên miền của một chức năng một phần trong Scala?
- 26. Lấy tên Múi giờ của Canonical trong tập lệnh shell
- 27. Làm cách nào để lấy lại chức năng chính của tôi?
- 28. Django: Làm thế nào tôi có thể gọi một chức năng xem từ mẫu?
- 29. Tôi làm cách nào để có được tên người dùng thực thi tập lệnh Perl của mình?
- 30. Làm thế nào tôi có thể gọi một kịch bản python từ một tập lệnh python
Bản sao của http://stackoverflow.com/questions/1935867/finding-out-the-filename-that-called-my-function-in -php/1935902 – Gordon