Как этот php setter очищает строку? - PullRequest
1 голос
/ 15 октября 2019

Я ссылаюсь на этот код для назначения, где я должен создать свой собственный класс. Я не понимаю, как этот пример сеттер очищает строку токена.

У меня такое ощущение, что это связано с частью (?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

...