我正在将一个简单的项目放在一起以便熟悉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
我对这种方法有什么遗漏?
答案 0 :(得分:0)
这一行
$this->deck = new DeckOfCards();
将返回一个对象,而不是一个数组。
您需要的是一个可以重新启动阵列的东西。您可能需要这样做:
$myDeck = new DeckOfCards();
shuffle($myDeck->getDeck()); // where DeckOfCards::getDeck() returns an `array()`