Ошибка функции PHP T_FUNCTION - PullRequest
0 голосов
/ 24 ноября 2010

Я получаю ошибку в строке 4

Ошибка разбора: синтаксическая ошибка, неожиданный T_FUNCTION в C: \ xampp \ htdocs \ work \ CASC \ admin \ form-validator.php в строке 21

Кто-нибудь может помочь?

public function email($message='')
    {
        $message = ( empty ($message) ) ? '%s is an invalid email address.' : $message;
        $this->set_rule(__FUNCTION__, function($email) {
            return ( filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE ) ? FALSE : TRUE;
        }, $message);
        return $this;
    }


private function set_rule($rule, $function, $message='')
    {
         // do not attempt to validate when no post data is present
        if ( $this->haspostdata ) {
            if ( ! array_key_exists($rule, $this->rules) ) {
                $this->rules[$rule] = TRUE;
                if ( ! array_key_exists($rule, $this->functions) && is_callable($function) ) {
                    $this->functions[$rule] = $function;
                }
                if ( !empty ($message) ) {
                    $this->messages[$rule] = $message;
                }
            }
        }
    }

1 Ответ

4 голосов
/ 24 ноября 2010

Ваш код действителен. Похоже, ошибка не запускается с использованием PHP5.3, что требуется при использовании замыканий.

Путь до 5.3 будет:

private function emailRule($email)
{
    return ( filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE ) ? FALSE : TRUE;
}

public function email($message='')
{
    $message = ( empty ($message) ) ? '%s is an invalid email address.' : $message;
    $this->set_rule(__FUNCTION__, array($this, 'emailRule'), $message);
    return $this;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...