0

以下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 。这是什么错误?我该如何解决这个问题?

4

2 回答 2

3

访问对象的属性时,不要使用$. 只会echo $obj->arr[1]做得很好。

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

public $arr = array("First","Second","Third","Fourth");
于 2013-01-26T19:18:14.043 回答
2

您需要private|public|protected在前面添加$arr

此外,访问 with$obj->arr[1]而不是,但$obj->$arr[1]实际上是有效的语法。

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

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

内插为$obj->arr

于 2013-01-26T19:17:56.717 回答