2012-03-12 105 views
0

出于某种原因,我收到括号不平衡的以下行的语法错误,我看不到原因。()的不平衡度()

if(isset($this->uri->segment(3)) AND ((empty($this->uri->segment(3))||($this->uri->segment(3) === FALSE)||(trim($this->uri->segment(3)) == ''))) 
+3

有12个开放但只有11个右括号。 – Gumbo 2012-03-12 19:43:10

+0

仔细计数 – thetaiko 2012-03-12 19:43:10

+1

顺便说一下:['isset'](http://php.net/isset)和['empty'](http://php.net/empty)只能用于变量。 – Gumbo 2012-03-12 19:44:33

回答

5
if(
    isset(
    $this->uri->segment(3) 
) AND (
    (
     empty(
     $this->uri->segment(3) 
    )||(
     $this->uri->segment(3) === FALSE 
    )||(
     trim(
      $this->uri->segment(3) 
     ) == '' 
    ) 
    ) 
) 

你忘了关闭if

+0

Upvote的限制已达成,但格式本身告诉如何解决此类问题:) – Sarfraz 2012-03-12 19:45:09

+0

逻辑没有任何意义,'空()'照顾其他两个条件。 if(empty($ var)|| $ var === FALSE)'是完全多余的。 – 2012-03-12 19:46:49

+0

@Madmartigan:不是我的问题。 – 2012-03-12 19:50:16

1

看起来像你正在使用Codeigniter。你已经使它比需要更复杂了。您可以将此缩短到以下几点:

if(! $this->uri->segment(3)) 
{ 
    // do something 
} 

http://codeigniter.com/user_guide/libraries/uri.html

默认情况下,该函数返回FALSE(布尔)如果段不存在。

Codeigniter中的URI段永远不会是空字符串,因此不需要担心这一点。不需要修剪它们。

此外,''FALSE都是empty(),所以不需要额外的类型检查。

+0

谢谢你的回应。 – 2012-03-12 19:59:03

+0

我遇到了此问题的路由问题。 $ route ['pmsystem/viewmessage /(:num)'] ='pmsystem/viewmessage/$ 1';对于位于http://www.kansasoutlawwrestling.com/kowmanager/pmsystem/viewmessage/1上的页面,因为1是邮件的标识 – 2012-03-12 20:01:36

+0

您确定已经在长时间工作该KOW管理器。你有什么问题?不管它是什么,它与这个线程中的任何东西都没有关系。 – 2012-03-12 20:18:29