什么是最好的写作方式:
if(!$this->uri->segment('4') && $this->uri->segment('4') != 0)
这太罗嗦了。只需要检查是否设置了一个字符串,即使它是0。
4c8rllxm1#
isset()编辑:不,这不是一个变量,它是一个方法。只需要检查是否设置了一个字符串,即使它是0。
if($this->uri->segment('4') != '')
但我不认为这是你想做的。这取决于此方法返回的内容以及您尝试完成的内容。
ct3nt3jp2#
这太罗嗦了。只需要检查是否设置了一个字符串,即使它是0。如何检查字符串的长度?
if (strlen($this->uri->segment('4')) > 0)
pu3pd22g3#
无论如何,第一个子句都不是“正确的”,正如您在编写第二个子句时所发现的那样。您还必须考虑FALSE和空字符串("")。像if ($var)这样的代码是懒惰的,而且通常是错误的。测试 * 变量 * 的正确方法是PHP函数isset。但是,假设$this->uri->segment('4')是一个函数调用,结果将始终是“set”。它永远不会被设置。所以你在这里似乎不太可能做得到。你真正在寻找的是什么标准?也许你的函数segment返回null?所以写if (!is_null($this->uri->segment('4')))。或者你在找空字符串?所以写if ($this->uri->segment('4') != "")。
FALSE
""
if ($var)
isset
$this->uri->segment('4')
segment
null
if (!is_null($this->uri->segment('4')))
if ($this->uri->segment('4') != "")
rqenqsqc4#
if ( strlen($this->uri->segment('4')) ) {}
if ( strlen($this->uri->segment('4')) !== "" ) {}
4条答案
按热度按时间4c8rllxm1#
isset()
编辑:不,这不是一个变量,它是一个方法。
只需要检查是否设置了一个字符串,即使它是0。
但我不认为这是你想做的。
这取决于此方法返回的内容以及您尝试完成的内容。
ct3nt3jp2#
这太罗嗦了。只需要检查是否设置了一个字符串,即使它是0。
如何检查字符串的长度?
pu3pd22g3#
无论如何,第一个子句都不是“正确的”,正如您在编写第二个子句时所发现的那样。您还必须考虑
FALSE
和空字符串(""
)。像if ($var)
这样的代码是懒惰的,而且通常是错误的。测试 * 变量 * 的正确方法是PHP函数
isset
。但是,假设$this->uri->segment('4')
是一个函数调用,结果将始终是“set”。它永远不会被设置。所以你在这里似乎不太可能做得到。你真正在寻找的是什么标准?
也许你的函数
segment
返回null
?所以写if (!is_null($this->uri->segment('4')))
。或者你在找空字符串?所以写
if ($this->uri->segment('4') != "")
。rqenqsqc4#