2

文字列オフセットを使用して配列にアクセスするとエラーが発生します。配列は次のようになります。

$array = array(
                    "first" => array("one","two","three"),
                    "second" => array("blabla"),
                    "third" => array("something","else"),
                    "fourth" => array("next","nextnext","nextnextnext")
    );

私が持っている文字列に応じて内側の配列の 1 つを取得しようとしています。次のように、その文字列をオフセットとして使用します。

$curArray = $array[$this->string];

しかし、スクリプトを実行するたびに、その行でエラーが発生します。理由を教えてください。私が得るエラーは「不正なオフセットタイプ」です。ありがとう

4

2 に答える 2

1

$this->stringそれはあなたが思っているものではない可能性が非常に高いです。このエラーは、文字列または数値以外が配列キーとして使用されているために発生します。

そうすればvar_dump($this->string);、値が実際に何であるかを確認できるはずです。

編集: ASimpleXMLElementはオブジェクトであるため、配列キーとして使用できません。次のように文字列にキャストできます。

$key = (string)$this->string;
$curArray = $array[$key];
于 2013-01-29T19:41:29.917 に答える
0

の値は$this->string、実際の文字列値として認識されません。

何が含まれているかをよりよく理解するために、を実行することをお勧めしprint_r ( $this->string )ます。

参照: http://php.net/manual/en/language.types.array.php

is_string(..)関数を使用してが有効かどう$this->stringかを判断し、おそらくarray_key_exists ()ルックアップが有効かどうかを確認できます。

于 2013-01-29T19:41:09.947 に答える