PHP的shuffle()表示当我给它一个数组时它需要一个数组

时间:2013-06-29 21:50:15

标签: php phpstorm

我正在将一个简单的项目放在一起以便熟悉php;我来自C#背景。我遇到的一个问题是类型感知的概念,因为没有...不是真的。例如:

<?php

include_once 'Player.php';
include_once 'DeckOfCards.php';

class Dealer extends Player {
    public $deck;

    public function __construct($name){
        $this->name = $name;
        $this->money = 10000;
    }

    public function setNewDeck(){
        $this->deck = new DeckOfCards();
        return true;
    }

    public function dealCard(){
        return array_pop($deck);
    }

    public function shuffleDeck(){
        shuffle($this->deck);
        return true;
    }
} ?>

问题是当调用shuffleDeck()函数时,我收到警告:

shuffle() expects parameter 1 to be array, object given in MyFirstPhpProject\Object\Dealer.php on line 23

我对这种方法有什么遗漏?

1 个答案:

答案 0 :(得分:0)

这一行

        $this->deck = new DeckOfCards();

将返回一个对象,而不是一个数组。

您需要的是一个可以重新启动阵列的东西。您可能需要这样做:

$myDeck = new DeckOfCards();
shuffle($myDeck->getDeck()); // where DeckOfCards::getDeck() returns an `array()`