访问阵列时出现语法错误

时间:2014-10-23 13:37:34

标签: php arrays class object

我有问题。我已经创建了一个类' Game'在这个类中我有一个名为' ShadowField'的数组。此字段包含对象('字段'):

class Game extends Gameboard
{
    public $ShadowField = array();
    public $GameField = array();
    public $Home = array();

    function __construct($c,$h,$w,$m,$fc){
        parent::__construct($c,$h,$w);

        $counter = 1;
        for($index_h=0; $index_h<11; $index_h++){
            for($index_w=0; $index_w<11; $index_w++){
                array_push($this->ShadowField, new Field(parent::$this, $m, "FF8000", ($h/11.1)*$index_h, ($w/11.15)*$index_w, true, $counter, $index_h, $index_w));
                $counter++;
            }
        }

        $PlayerRed = new PlayerHome($this, $m, "FF0000", 0);
    }
}

然后,在我的下一堂课中,我尝试使用这个数组,但后来我收到了一个错误:

for($i=0;$i<4;$i++){
    parent::__construct($game,$m,$c,$game->ShadowField[$FieldID[$i]]->Top,ShadowField[$FieldID[$i]]->Left);
}

错误:

Parse error: syntax error, unexpected '[' in C:\XAMPP\xampp\htdocs\ot\madn\Game.class.php on line 63

我不理解它,因为它是一个数组,我把它称为数组,所以问题是什么?

&#34; FieldID&#34;也是一个数组:

class PlayerHome extends Field
{
    public $Color;
    public $Player;

    public $FieldID = array();

    function __construct(Game $game, $m, $c, $p){
        switch($p){
            case 0: array_push($FieldID,1,2,12,13);
            case 1: array_push($FieldID,10,11,21,22);
            case 2: array_push($FieldID,100,101,111,112);
            case 3: array_push($FieldID,109,110,120,121);
            default:echo "Player_$p existiert nicht, bitte eine SpielerID zwischen 0-3 wählen.";
        }
        for($i=0;$i<4;$i++){
            parent::__construct($game,$m,$c,$game->ShadowField[$FieldID[$i]]->Top,ShadowField[$FieldID[$i]]->Left);
        }
    }
}

(对不起英语不好)

1 个答案:

答案 0 :(得分:2)

您第一次正确使用它:

$game->ShadowField[$FieldID[$i]]->Top

但是第二次在不引用对象的情况下自己调用ShadowField:

ShadowField[$FieldID[$i]]->Left

用这个替换循环中的行(格式化为可见性):

parent::__construct($game,
                   $m,
                   $c,
                   $game->ShadowField[$FieldID[$i]]->Top,
                   $game->ShadowField[$FieldID[$i]]->Left);