我正在尝试在php构造函数方法中初始化一个类属性,但是我收到了错误:
注意:未定义的变量:第9行的C:\ wamp \ scaleUp \ back \ objects.php中的_board
代码:
<?php
class Board {
public function __construct(){
for ($x = 9; $x >= 0; $x--) {
for ($y = 0; $y<10; $y++){
$row = array();
$row[$y] = $y;
}
$this->$_board = array();
$this->$_board[$x] = $row;
}
echo "here";
echo $this->$board[$x];
}
}
$board = new Board();
?>
答案 0 :(得分:2)
访问对象字段的语法是$obj->field
,而不是$obj->$field
(除非您要访问存储在$field
中的字段名称)。
答案 1 :(得分:1)
从$
-
_board
$this->_board = array();
答案 2 :(得分:1)
在这里,我已经为你调试了代码。
<?php
class Board {
public $_board;
public function __construct(){
for ($x = 9; $x >= 0; $x--) {
for ($y = 0; $y<10; $y++){
$row = array();
$row[$y] = $y;
}
$this->_board = array();
$this->_board[$x] = $row;
}
echo "here";
echo $this->_board[$x+1];/*OR*/print_r($this->_board[$x+1]);
//$x had to be incremented here.
}
}
$board = new Board();
?>
正如其他人所提到的,您必须遵循以下语法:$obj->property
,而不是$obj->$property
。
答案 3 :(得分:0)
应该是
$this->board
您不需要第二个$
符号。
此外,在构造函数中,在内部循环中,您将在每次迭代中将$row
重新初始化为数组。那是为了吗?
答案 4 :(得分:0)
您必须将变量定义为成员变量 吮吸为
class object {
$_board ;
...
...
...
}
当您想要使用它时,您必须使用以下语法
$this->_board = .....;
我希望这有助于你