En el siguiente código, invoco una función (resulta ser un constructor) en la que tengo una sugerencia de tipo. Cuando ejecuto el código me sale el siguiente error:Error al pasar la cadena al método con insinuación de tipo
error grave capturable: 1 Argumento pasado a la pregunta :: __ construct() debe ser una instancia de la cadena, cadena dada, llamado en run.php en la línea 3 y se define en question.php en la línea
de lo que puedo decir el error me está diciendo que la función está a la espera de una cadena, pero se pasa una cadena. ¿Por qué no acepta la cadena pasada?
run.php:
<?php
require 'question.php';
$question = new Question("An Answer");
?>
question.php:
<?php
class Question
{
/**
* The answer to the question.
* @access private
* @var string
*/
private $theAnswer;
/**
* Creates a new question with the specified answer.
* @param string $anAnswer the answer to the question
*/
function __construct(string $anAnswer)
{
$this->theAnswer = $anAnswer;
}
}
?>
Es porque los escalares son todos masajes en el uno al otro, según sea necesario en PHP, por lo que 0 == false, etc. Tales como, no se puede escribir insinuar un escalar. Es motivo de mucha discusión sobre los aspectos internos de PHP, de los que soy miembro. – Fuser97381