最好的写作方式是什么:
if(!$this->uri->segment('4') && $this->uri->segment('4') != 0)
这太长了。只需检查是否设置了字符串,即使它是0。
答案 0 :(得分:3)
编辑:不,这不是一个方法..
只需检查是否设置了字符串,即使它是0。
if($this->uri->segment('4') != '')
但我不认为这是你想要做的事情。
这取决于此方法返回的内容以及您尝试完成的内容。
答案 1 :(得分:2)
无论如何,第一个条款并不“正确”,正如您通过编写第二个条款所发现的那样。您还必须考虑FALSE
和空字符串(""
)。像if ($var)
这样的代码很懒,通常错误。
测试变量的正确方法是PHP函数isset
。但是,假设$this->uri->segment('4')
是函数调用,结果将始终为“set”。它永远不会被设置。所以你似乎不太可能在这里做很多事情。
您真正寻找什么标准?
也许您的函数segment
会返回null
?所以写if (!is_null($this->uri->segment('4')))
。
或许您正在寻找空字符串?所以写if ($this->uri->segment('4') != "")
。
答案 2 :(得分:2)
这太长了。只需检查是否设置了字符串,即使它是0。
如何检查字符串的长度?
if (strlen($this->uri->segment('4')) > 0)
编辑为了明确,我添加了> 0,所以它可能更具描述性,正是你期望的。但是,这不是必要的。
答案 3 :(得分:0)
1
if ( strlen($this->uri->segment('4')) )
{}
2
if ( strlen($this->uri->segment('4')) !== "" )
{}