使用变量Error的字符串偏移量

时间:2013-01-29 19:38:27

标签: php arrays variables offset

我从使用字符串偏移访问数组时遇到错误。该数组看起来像这样:

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

我正在尝试根据我拥有的字符串获取其中一个内部数组,并将该字符串用作偏移量,如下所示:

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

但每次我运行脚本时都会在该行上出错。你能告诉我为什么吗? 我得到的错误是“非法偏移类型”。 感谢

2 个答案:

答案 0 :(得分:1)

$this->string很可能不是您认为的那样。此错误是由非字符串或数字用作数组键引起的。

如果你var_dump($this->string);你应该能够看到实际值是什么。

编辑: SimpleXMLElement是一个对象,因此不能用作数组键。您可以将其强制转换为字符串:

$key = (string)$this->string;
$curArray = $array[$key];

答案 1 :(得分:0)

$this->string的值未被识别为实际字符串值。

您可能希望运行print_r ( $this->string )以更好地了解其中包含的内容。

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

您可以使用is_string(..)函数来确定$this->string是否有效,如果您的查找有效,可以使用array_key_exists ()查看。