【问题标题】:Find out where custom PHP function is defined找出自定义 PHP 函数的定义位置
【发布时间】:2018-04-17 11:56:22
【问题描述】:

我使用内部函数function_exists,它可以返回true,但我在我的项目中找不到自定义函数。我还调试了我的代码来跟踪函数,但调试器没有进入我的自定义函数。我非常期待知道为什么。请帮帮我,谢谢。

【问题讨论】:

  • 请阅读How to Ask,不清楚您在问什么。您的问题是您试图覆盖if(function_exists()) 中的函数,但它从未发生过,因为该函数已经存在某处?那么只需删除条件,不要在重新声明之前检查函数是否存在 - 然后你会收到一条错误消息告诉你首先声明该函数的位置,文件和行号...

标签: php function exists


【解决方案1】:

要找出函数定义在哪里,请使用以下代码:

<?php
   $rf = new ReflectionFunction('my_fuction_name');
   echo 'file:' . $rf->getFileName() . ', line:' . $rf->getStartLine();
?>

请注意,如果该函数未在源代码中定义,而是 PHP 内部函数,getFileName()getStartLine() 都将返回 false

你可以通过这种方式检查函数是否是内部的:

<?php
   $rf = new ReflectionFunction('my_fuction_name');
   if($rf->isInternal() === TRUE){
      echo "Function is internal!";
   }else{
      echo "Function is not internal.";
   }
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-10
    • 2019-06-01
    • 2022-01-21
    • 2013-04-02
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    相关资源
    最近更新 更多