首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数名($param,$line = __LINE__,$file = __FILE__) {};

函数名($param,$line = __LINE__,$file = __FILE__) {};
EN

Stack Overflow用户
提问于 2010-08-02 19:38:16
回答 4查看 1.5K关注 0票数 6

有没有可能让函数自动包含行号和调用该函数的文件,

就像我在函数中调用__LINE____FILE__一样,它将使用函数定义所在的行和文件。

但我不想每次都将__LINE____FILE__传递给函数。

那么,如果我将它们设置为默认参数,它们是来自函数定义,还是调用它的地方?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-02 19:42:51

唯一的方法是使用debug_backtrace(),但顾名思义:它是用于调试的。您的代码应该根据调用的位置/时间在生产环境中而不是附加任何含义或功能。

票数 5
EN

Stack Overflow用户

发布于 2010-08-02 19:42:43

按照你的建议去做似乎行不通。

你可以这样做,但我不确定你为什么要这么做,而且没有更好的方法来实现你想要实现的目标--参见Wrikken's answer

代码语言:javascript
复制
<?php

function test() {
    $backtrace = debug_backtrace();
    $last = $backtrace[0];
    echo "{$last['function']}() called from {$last['file']} line {$last['line']}\r\n"; 
}



test();
票数 6
EN

Stack Overflow用户

发布于 2016-02-09 03:45:57

虽然为时已晚,但也许有用,你可以使用get_called_class(),作为被调用的类名,而不是像的参数一样传递。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3387320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档