Я работаю над классом PHP, который я написал. Его setColour()
метод намекает на экземпляр другого моего класса, Colour
.
Я делаю это:
$colour = new Colour($updates->colour);
echo get_class($colour);
$product->setColour($colour);
Как и следовало ожидать, get_class говорит мне, что $colour
является экземпляром domain\Colour
, но я получаю сообщение об ошибке при передаче его на setColour()
:
Исправляемая фатальная ошибка: аргумент 1, переданный в домен \ Product :: setColour (), должен быть экземпляром домена \ Color, заданная строка,…
Colour
выглядит так:
<?php
namespace base\domain;
/**
* Represents a colour.
*
**/
class Colour extends \base\domain\Enum {
const __default = self::NONE;
const NONE = NULL;
const BLACK = 'black';
const BLUE = 'blue';
const BRONZE = 'bronze';
const BROWN = 'brown';
const GOLD = 'gold';
const GREEN = 'green';
const GREY = 'grey';
const MULTICOLOURED = 'multicoloured';
const ORANGE = 'orange';
const PINK = 'pink';
const PURPLE = 'purple';
const RED = 'red';
const SILVER = 'silver';
const WHITE = 'white';
const YELLOW = 'yellow';
} // END class Colour
Colour
расширяет пользовательский тип Enum
, который переопределяет __toString()
, поэтому я подумал, что это может быть причиной проблемы, но при удалении реализации __toString()
это не помогает.
Любые мысли, которые вы можете предложить, будут высоко оценены.