Я ссылаюсь на этот код для назначения, где я должен создать свой собственный класс. Я не понимаю, как этот пример сеттер очищает строку токена.
У меня такое ощущение, что это связано с частью (?string $newProfileActivationToken):void
в строке 10, но я не знаком с этим синтаксисом. Имеет ли этот синтаксис имя, которое я могу найти в Google, и выполняет ли его очистку?
/**
* mutator method for account activation token
*
* @param string $newProfileActivationToken
* @throws \InvalidArgumentException if the token is not a string or insecure
* @throws \RangeException if the token is not exactly 32 characters
* @throws \TypeError if the activation token is not a string
*/
public function setProfileActivationToken(?string $newProfileActivationToken): void {
if($newProfileActivationToken === null) {
$this->profileActivationToken = null;
return;
}
$newProfileActivationToken = strtolower(trim($newProfileActivationToken));
if(ctype_xdigit($newProfileActivationToken) === false) {
throw(new\RangeException("user activation is not
valid"));
}
//make sure user activation token is only 32 characters
if(strlen($newProfileActivationToken) !== 32) {
throw(new\RangeException("user activation token has to be 32"));
}
$this->profileActivationToken = $newProfileActivationToken;
Я ожидал использовать FILTER_SANITIZE_STRING