Вы можете проверить трассировку стека с помощью debug_backtrace()
. Это будет содержать информацию о вызывающем методе / функции среди других. См. Руководство для примеров.
Чтобы добавить поведение в существующую функцию, оберните функцию в свою собственную функцию или класс и затем вызовите ее вместо встроенной функции.
Чтобы полностью переопределить встроенную функцию, вам нужно установить runkit
. Тогда вы можете сделать runkit_redefine_function()
(или использовать APD, как предложено в другом месте).
Если вы просто хотите знать, где в вашем проекте был вызван mail()
, например, вам не нужно оценивать это во время выполнения, используйте функцию поиска вашей IDE. Eclipse, Zend Studio и Netbeans могут выполнять поиск файлов, поэтому поиск вызовов и их замена должны быть очень простыми.