0

なぜこれが機能しないのか疑問に思っています。

PHP 5.3 以降では、オブジェクトを返す関数またはクラス メソッドはオブジェクトのように動作します。

<?php

class A {
function test() {
    echo "Yay!";
    }
}

function get_obj() {
    return new A();
}


function get_array() {
    return array("foo", "bar", "hallo", "world");
}

get_obj()->test();  // "works
echo get_array()[1]; // and this fails 
?>

http://php.net/manual/en/functions.returning-values.phpでこれを見つけました

配列では機能せず、オブジェクトでは機能する理由を誰かが明確にします。

編集:

get_array() を追加

4

2 に答える 2

3

関数配列の逆参照はPHP 5.4 で追加されたため、5.4 以降を使用していない限り、これを行う必要があります。

$temp = get_array();
echo $temp[0];
于 2012-11-29T16:04:39.567 に答える
0

どこget_array()かに定義されていますか?その場合は、そのコードを貼り付けます。

于 2012-11-29T16:02:47.167 に答える