2012-04-23 93 views
0

无法在课堂中声明数组。shuffle array in class php

它给了我:不能访问空的属性。我想展示一个国际象棋棋盘。使用二维数组。如果不用作类中的函数,代码工作正常。我想洗牌并显示它。

private $board = array(array('k', 'k', 'b', 'q', 'k', 'b', 'k', 'r'),    
      array('p', 'p', 'p', 'p', 'p', 'p', 'p', 'p'), 
      array(' ', ' ', ' ', ' ', ' ', 
      ' ', ' ', ' '), 
      array('p', 'p', 'p', 'p', 'p', 'p', 'p', 'p'), 
      array('r', 'k', 'b', 'q', 'k', 'b', 'k', 'r')); 



public function produce() 
{ 

      shuffle($this->$board);  
      echo "<div id='inside'>"; 

      for($yIndex = 0; $yIndex < count($board); $yIndex++) 
      { 

       echo "<div class='row'>"; 

      for($xIndex = 0; $xIndex < count($board[$yIndex]); $xIndex++) 
      { 
       echo "<div class='column' data-square=$yIndex-$xIndex> 
      <div class=".$board[$yIndex][$xIndex]."></div></div>"; 
      } 
      echo "</div>"; 

      } 

}}$a = new Display();$a->produce(); 
+0

首先击中谷歌给了我这个,它看起来像正是您的问题:http://php.syntaxerrors.info/index.php?title=Cannot_access_empty_property – 2012-04-23 09:48:12

回答

3

你有语法错误,应该是$this->board而不是$this->$board。第二种形式是访问variable property,如

$propertyName = 'board'; 
shuffle($this->$propertyName);