1

私が使用するライブラリは配列を使用します。その配列に print_r を適用すると、次のように出力されます。

Array
(
    [*queueId] => 1
    [*handle] => 9b875867b36d568483fb35fdb8b0bbf6
    [*body] => First string in the TestQueue
    [*md5] => c23ba714199666efbc1dcd5659bb0a0a
    [*timeout] => 1408003330.6534
    [*id] => 2
    [*creationdate] => 2014-08-13 16:03:37
)

ライブラリはその配列で魔法のゲッターを使用します

public function __get($key)
{
    if (!array_key_exists($key, $this->_data)) {
        throw new Exception\InvalidArgumentException("Specified field \"$key\" is not in the message");
    }
    return $this->_data[$key];
}

アクセスしようとすると

$myObject->body

私は例外に遭遇します。実際、上記のように _data 配列が使用可能である間、array_key_exists が false を返すことをデバッガーが示しています。

4

4 に答える 4

2

コメントで説明したように、配列キーは実際にはアスタリスクで始まります。の通常の構文を使用してそれらを呼び出すことはできないため$obj->*body(構文エラーが発生します)、次を使用できます。

$myObject->{'*body'}

これで問題が解決するはずです。

于 2014-08-14T08:17:25.897 に答える