php 检查是否设置了string,即使它是0

6uxekuva  于 2023-05-05  发布在  PHP
关注(0)|答案(4)|浏览(109)

什么是最好的写作方式:

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

这太罗嗦了。只需要检查是否设置了一个字符串,即使它是0。

4c8rllxm

4c8rllxm1#

isset()
编辑:不,这不是一个变量,它是一个方法。
只需要检查是否设置了一个字符串,即使它是0。

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

但我不认为这是你想做的。
这取决于此方法返回的内容以及您尝试完成的内容。

ct3nt3jp

ct3nt3jp2#

这太罗嗦了。只需要检查是否设置了一个字符串,即使它是0。
如何检查字符串的长度?

if (strlen($this->uri->segment('4')) > 0)
  • 编辑 * 为了明确起见,我添加了〉0,所以它可能更能描述您所期望的内容。然而,这不是必需的。
pu3pd22g

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') != "")

rqenqsqc

rqenqsqc4#

if ( strlen($this->uri->segment('4')) )
{}
if ( strlen($this->uri->segment('4')) !== "" )
{}

相关问题