函数名称($ param,$ line = __LINE __,$ file = __FILE__){};

Hai*_*ood 6 php function defaults

是否可以让函数自动包含行号和函数被调用的文件,

好像我调用__LINE____FILE__在函数中它将使用函数定义所在的行和文件.

但我不希望有经过__LINE____FILE__进入功能每次.

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

Tom*_*igh 5

做你的建议似乎不起作用.

你可以这样做,但我不确定你为什么要这样做,并且没有更好的方法来实现你想要实现的目标 - 请参阅Wrikken的回答.

<?php

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



test();
Run Code Online (Sandbox Code Playgroud)


Wri*_*ken 5

唯一的方法是使用debug_backtrace(),但顾名思义:它用于调试。您的代码应该重视基础在哪里/当它被称为生产任何意义或功能。