2013-05-12 3 views
0

У меня возникли проблемы с Оператор возврата в PHP. Дело в том, что независимо от того, что происходит внутри моей функции, я всегда получаю ложное значение из функции. Я действительно думаю, что это из-за оператора Return, потому что я пытаюсь использовать его в других функциях, и я не получаю разницу.Оператор возврата в функциях PHP

public function valid_token() 
{ 
    if (!isset($_SESSION['token']) || $this->token != $_SESSION['token']) 
    { 
     $this->errors[] = "Formulario incorrecto"; 
    } 

return count($this->errors)? 0 : 1; 
} 

Из этой функции я всегда получаю ложное значение(). Те же happends, когда я называю:

public function valid_data() 
{ 
    if (empty($this->sectorName) || empty($this->sectorInfo) || empty($this->sectorCat)) 
    { 
     $this->errors [] = "Datos incorrectos"; 
    } 

return count($this->errors)? 0 : 1; 
} 

Конечно, я называю обе функции, когда я уже отправил форму и установить маркер.

ответ

1

Потому что вы просто подсчет не проверяя, Попробуйте

return count($this->errors) > 0 ? 0 : 1; 
+0

Я даже думаю, что граф является длительным. – mpyw

+1

Вы ошибаетесь. count() возвращает число. 0 оценивается как false, а любое число, отличное от 0, равно true. И поскольку count() не возвращает отрицательные числа, ваш чек не нужен. – Juampi

+0

См. Следующее: http://ideone.com/BXnYiB Я уверен, что есть и другие причины. – mpyw

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