如何从debug_backtrace()访问项目?

时间:2012-07-24 15:49:11

标签: php

在这个缩短的例子中:

print_r($foo);

Array
(
    [0] => Array
        (
            [function] => exception_handler
            [class] => LP
            [type] => ::
            [args] => Array
                (
                    [0] => Exception Object
                        (
                            [trace:Exception:private] => Array
                                (
                                    [0] => Array
                                        (
                                            [args] => Array
                                                (
                                                    [0] => 'hello'
                                                    [1] => 'world'
                                                )
                                        )
                                )
                        )
                )
        )
)   

如何访问“hello”的最后一项。

我在$foo[0]['args'][0]

之后迷路了

2 个答案:

答案 0 :(得分:4)

[0] => Exception Object
(
    [trace:Exception:private] => Array
    (
        [0] => Array
        (
            [args] => Array
            (
                [0] => 'hello'
                [1] => 'world'
            )
        )
    )
)

它是Exception类型的对象,其值在名为private的(trace)属性中,因此我猜它{{3} }

$trace = $foo[0]['args'][0]->getTrace();
echo end($trace[0]['args']);

...只是意识到:你说过"最后一项",但你也说过#34;你好",所以知道我不知道你想要什么。但是,$trace[0]['args']是一个常规数组,您应该可以使用它,无论您喜欢什么:) end()为您提供最后一项。

答案 1 :(得分:0)

你可以像这样使用PHP 5.4

访问它
// Only works with PHP 5.4
$foo[0]['args'][0]->getTrace()[0]['args'][0];