2014-01-08 5 views
0

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

код ошибки

Parse error: syntax error, unexpected ';' in /home/ob219/public_html/membership/classes/Validate.php on line 38 

код

<?php 
class Validate { 
private $_passed = false, 
     $_errors = array(), 
     $_db = null; 

public function __construct() { 
    $this->_db = DB::getInstance(); 
} 

public function check($source, $items = array()) { 
    foreach($items as $item => $rules) { 
     foreach($rules as $rule => $rule_value) { 

      $value = trim($source[$item]); 
      $item = escape($item); 

      if($rule == 'required' && empty($value)) { 
       $this->addError("{$item} is required"); 
      } else if(!empty($value)) { 
       switch($rule) { 
        case 'min': 
         if(strlen($value) < $rule_value) { 
          $this->addError("{$item} must be a minimum of {$rule_value} characters."); 
         } 
        break; 
        case 'max': 
         if(strlen($value) > $rule_value) { 
          $this->addError("{$item} must be a maximum of {$rule_value} characters."); 
         } 
        break; 
        case 'matches': 
         if($value != $source [$rule_value]) { 
          $this->addError("{$rule_value} must match {$item}"); 
         } 
        break; 
        case 'unique': 
         $check = $this->_db->get($rule_value, array($item, '=', $value); 
          if($check->count()) { 
           $this->addError("{$item} already exists."); 
          } 
        break; 


       } 

      } 

     } 
    } 

    if(empty($this->_errors)) { 
     $this->_passed = true; 
    } 

    return $this; 
} 

private function addError($error) { 
    $this->_errors[] = $error; 
} 

public function errors() { 
    return $this->_errors; 
} 

public function passed() { 
    return $this->_passed; 
} 
} 
+3

хорошо, что линия 38? – Doorknob

+0

@Jessica im используя возвышенный текст 2, вы можете порекомендовать лучший? – Beep

+0

PHPStorm, Eclipse, Zend Studio, Visual Studio, небо - предел. Однако все, что я назвал, - лучший выбор. – skrilled

ответ

4

Забыли закрыть paranthesis. Изменение

$check = $this->_db->get($rule_value, array($item, '=', $value); 

Для

$check = $this->_db->get($rule_value, array($item, '=', $value)); 
+2

Зачем использовать редактор подсветки синтаксиса, когда вы можете заставить кого-то из Stack Overflow исправить это для вас, не так ли? – tadman

+0

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

+1

Или вы могли бы просто взглянуть на строку 38: p – skrilled

Смежные вопросы