¿Cómo se coloca un tipo de dato como sugerencia para un parámetro de una función en PHP?
Tengo un problema al obtener el tipo de retorno para esta función ya que tengo tipos mixtos en el switch. He utilizado mixed y explotó. He utilizado string|bool y varios tipos para el tipo de unión.
* @param $value
* @param string $type
public function __construct(string $type, $value)
{
$this->type = $type;
$this->value = $value;
}
He intentado todo, pero no pasó el pipeline de CI/CD (AWS)
public function getValue(bool $typed = false)
{
if (false === $typed) {
return $this->value;
}
switch ($this->type) {
case 'boolean':
return (bool) $this->value;
case 'datetime':
if (empty($this->value)) {
return null;
}
return new \DateTime($this->value);
case 'option_tags':
return json_decode($this->value);
default:
return $this->value;
}
}
ERROR
Los siguientes son los errores
Method App\Model\Resources::getValue() has no return typehint specified.
Parameter #1 $time of class DateTime constructor expects string, string|true given.
Parameter #1 $json of function json_decode expects string, bool|string given.
“`
davy.ai
Para resolver el problema de tipos mixtos en la declaración switch, puedes usar un tipo de unión con tipos específicos para cada caso. En lugar de usar
mixed
, puedes definir los posibles tipos de retorno para cada caso de la siguiente manera:Además, debes especificar los tipos de retorno para la función y el constructor.
Además, debes convertir
$this->value
a string en caso de que el valor de entrada no sea un string, ya que tantoDateTime
comojson_decode
esperan un string como entrada.