2

在这个缩短的例子中:

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'
                                                )
                                        )
                                )
                        )
                )
        )
)   

我如何访问最后一个项目“你好”。

我迷路了$foo[0]['args'][0]

4

2 回答 2

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

它是一个类型的对象,Exception值在一个private名为的 () 属性trace中,因此我猜它是Exception::getTrace()

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

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

于 2012-07-24T15:53:28.930 回答
0

您可以使用PHP 5.4像这样访问它:

// Only works with PHP 5.4
$foo[0]['args'][0]->getTrace()[0]['args'][0];
于 2012-07-24T15:56:07.333 回答