2013-05-12 74 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; 
} 

这一职能的我总是得到值()。当我打电话时也是如此:

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 2013-05-12 04:09:01

+1

你错了。 count()返回一个数字。 0的计算结果为false,并且与0不同的任何数值计算结果为true。而且由于count()不返回负数,所以您的支票是不必要的。 – Juampi 2013-05-12 04:12:06

+0

看到这个:http://ideone.com/BXnYiB 我敢肯定还有另外一个原因。 – mpyw 2013-05-12 04:17:55

0

更简单地说,

return !$this->errors;