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

PHP5.4で次のようにアクセスできます。

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