Boa noite, ocorreu algo inesperado enquanto testava o código e não consegui entender como isso foi permitido pelo PHP. Segue o código e o resultado, por favor tente explicar porque o PHP permitiu tal ocorrência.
CÓDIGO
<?php
class CriarConta
{
public string $cpf;
public string $correntista;
public float $saldo;
}
?>
RESULTADO
php -a
require('conta.php');
php > $conta = new CriarConta();
php > $conta->cpf = '123456789-20';
php > $conta->correntinas = 'eduardo';
php > $conta->saldo = 1300;
php > var_dump($conta);
object(CriarConta)#1 (3) {
["cpf"]=>
string(12) "123456789-20"
["correntista"]=>
uninitialized(string)
["saldo"]=>
float(1300)
["correntinas"]=>
string(7) "eduardo"
}
Observe no resultado da execução que no momento em que estava atribuindo valores às propriedades, digitei o nome de uma propriedade errado, era para ser "correntista" porém digitei "correntinas", após executei o var_dump() e tive a surpresa de encontrar uma "NOVA PROPRIEDADE" que não havia sido definida na classe.
Minha dúvida é, não deveria o PHP impedir a criação dessa propriedade?