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