检查是否设置了字符串,即使字符串为0

时间:2011-06-07 12:10:49

标签: php

最好的写作方式是什么:

if(!$this->uri->segment('4') && $this->uri->segment('4') != 0)

这太长了。只需检查是否设置了字符串,即使它是0。

4 个答案:

答案 0 :(得分:3)

isset()

编辑:不,这不是一个方法..

  

只需检查是否设置了字符串,即使它是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')) !== "" )
    {}