Skip to content

Instantly share code, notes, and snippets.

@ribafs
Last active July 30, 2022 13:19
Show Gist options
  • Select an option

  • Save ribafs/653c748e795c61a3fcaad3387aa1463c to your computer and use it in GitHub Desktop.

Select an option

Save ribafs/653c748e795c61a3fcaad3387aa1463c to your computer and use it in GitHub Desktop.
A partir da versão 7.4 podemos definir propriedades de classes com tipos o que é muito interessante e importante.
Fui fazer um pequeno teste e me veio uma dúvida:
<?php
declare(strict_types=1); // Esta linha resolve o problema e exige de fato que os tipos sejam respeitados
class User
{
public int $id;
public string $name;
}
$user = new User();
//print $user->id = 'Riba';
//print $user->name = 35;
A linha acima atribuindo 'Riba' para a propriedade id apresenta erro e faz sentido, pois id foi definido como inteiro.
Mas a linha com 35 não apresenta erro, como se 35 fosse string. Toda string deve vir entre '' ou "" ou não.
Como posso exigir que name receba apenas letrar e numca algarismos ou símbolos?
@ribafs
Copy link
Copy Markdown
Author

ribafs commented Jul 30, 2022

Assim parece que dá certo:

if($user->name === is_string(trim($user->name))){
print 'Nome válido';
}else{
print 'Nome inválido';
exit;
}

@ribafs
Copy link
Copy Markdown
Author

ribafs commented Jul 30, 2022

Resolvido pelo colega Marlon Maia

Opa man, vc precisa passar por PHP um param pra forçar os types, add logo abaixo da linha

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment