给函数__LINE__变量而不需要声明它

时间:2016-05-09 07:19:00

标签: php lines

所以我试图创建一个变量类,这意味着我可以动态命名我的变量。我想在我的代码上加undeclared variable at line x。我成功地调用了一个函数:

function ($varname, $line = 0) {
  // Example
  echo 'unknwon variable found at line '.$line;
}

但是我希望能够移除函数的line = 0,而只需将其赋予行,而无需调用函数,如:

exampleFunction('Name', __LINE__);

而是称之为:

exampleFunction('Name');

并且__LINE__变量随之传递,而不是需要包含它。 - 我尝试使被调用的函数看起来像这样:

exampleFunction($varname, __LINE__) {
  // Executed code.
}

虽然这也没有成功,但是错了。

1 个答案:

答案 0 :(得分:1)

您可以在debug_backtrace中使用exampleFunction方法获取来自线路的来电信息。

http://php.net/manual/tr/function.debug-backtrace.php

示例(从php.net复制)

<?php
// /tmp/a.php dosyası

function a_test($str)
{
    echo "\nHi: $str";
    var_dump(debug_backtrace());
}

a_test('friend');
?>

<?php
// /tmp/b.php dosyası
include_once '/tmp/a.php';
?>

哪个输出:

Hi: friend
array(2) {
[0]=>
array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(6) "a_test"
    ["args"]=>
    array(1) {
      [0] => &string(6) "friend"
    }
}
[1]=>
array(4) {
    ["file"] => string(10) "/tmp/b.php"
    ["line"] => int(2)
    ["args"] =>
    array(1) {
      [0] => string(10) "/tmp/a.php"
    }
    ["function"] => string(12) "include_once"
  }
}