尝试访问数组索引时无法识别错误

时间:2013-01-26 19:17:15

标签: php

以下php代码:

<?php
class foo {
   $arr = array("First","Second","Third","Fourth");
}

$obj = new foo();
echo $obj->$arr[1];
?>

生成以下错误:

Parse error: syntax error, unexpected '$arr' (T_VARIABLE), expecting function (T_FUNCTION) in /opt/lampp/htdocs/tester.php on line 3

我使用的是php5.4。这个错误是什么?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

访问对象的属性时,不使用$。只需echo $obj->arr[1]即可。

编辑:此外,正如Explosion Pills所说,您需要指定可见性。在这种情况下,您可能需要

public $arr = array("First","Second","Third","Fourth");

答案 1 :(得分:2)

您需要在private|public|protected

前添加$arr

此外,使用$obj->arr[1]进行访问,但$obj->$arr[1]实际上是有效的语法。

它是有效的语法,因为它将作为带有变量名称的字符串进行插值。这将起作用,例如:

$arr = array(1 => 'arr');
$obj->$arr[1];

插入$obj->arr