请看下面的代码函数isInMatchingSet(Card $ card) 正在拿“卡$卡”通常我看到“$ one,$ two” 当我编码永远不会像“卡”这样的静态值 卡什么在这里?我在猜它的类名。 我无法找到这方面的好解释,所以我想 问这里。
<?php
/**
* Models an individual card.
*/
class Card
{
/**
* @var string
*/
private $number;
/**
* @var string
*/
private $suit;
/**
* @param string $number
* @param string $suit
*/
public function __construct($number, $suit)
{
$this->number = $number;
$this->suit = $suit;
}
/**
* @return string
*/
public function getNumber()
{
return $this->number;
}
/**
* @return string
*/
public function getSuit()
{
return $this->suit;
}
/**
* Returns true if the given card is in the same set
* @param Card $card
* @return bool
* @assert (new Card(3, 'h'), new Card(3, 's')) == true
* @assert (new Card(4, 'h'), new Card(3, 's')) == false
*/
public function isInMatchingSet(Card $card)
{
return ($this->getNumber() == $card->getNumber());
}
}
答案 0 :(得分:4)
这称为type hinting。它是在PHP 5中引入的。
PHP 5引入了类型提示。函数现在能够强制参数为对象(通过在函数原型中指定类的名称),接口,数组(自PHP 5.1起)或可调用(自PHP 5.4起)。但是,如果将NULL用作默认参数值,则允许将其作为后续调用的参数。
示例:
// Array — expects an array
function test(Array $array) {
}
// Interface — expects an object of a class implementing the given interface
function test(Countable $interface) {
}
// Class — expects an object of that class (or any sub-classes)
function test(Exception $object) {
}
// Callable — expects any callable object
function test(callable $callable) {
}