0

クラスで宣言された配列をシャッフルできません。

それは私に与えます:空のプロパティにアクセスできません。チェス盤を表示したいです。2D配列を使用します。クラスで関数として使用されていない場合、コードは正常に機能します。配列をシャッフルして表示したい。

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(); 
4

1 に答える 1

3

構文が間違っています。$this->boardの代わりに使用する必要があり$this->$boardます。2番目の形式は、次のように変数プロパティにアクセスすることです。

$propertyName = 'board';
shuffle($this->$propertyName);
于 2012-04-23T09:47:24.993 に答える