开发者

Check whether string is set, even if it's 0

开发者 https://www.devze.com 2023-03-11 09:43 出处:网络
What\'s the best way of writing: if(!$this->uri->segment(\'4\') && $t开发者_如何学Pythonhis->uri->segment(\'4\') != 0)

What's the best way of writing:

if(!$this->uri->segment('4') && $t开发者_如何学Pythonhis->uri->segment('4') != 0)

This is far too long winded. Just need to check if a string is set, even if it's 0.


isset()

EDIT: nope this is not a var its a method..

Just need to check if a string is set, even if it's 0.

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

but i dont think this is what you are trying to do.

it depends on what this method returns and what you try to accomplish.


This is far too long winded. Just need to check if a string is set, even if it's 0.

How about checking for the length of the string?

if (strlen($this->uri->segment('4')) > 0)

EDIT For explicitness, I've added > 0, so it may be a little more descriptive what it is exactly you expect. This isn't necessary, however.


The first clause isn't "correct" anyway, as you've discovered by having to write the second one. You also have to consider FALSE and the empty string (""). Code like if ($var) is lazy and, usually, wrong.

The correct approach for testing a variable is the PHP function isset. However, assuming $this->uri->segment('4') is a function call, the result will always be "set". It can never not be set. So it seems unlikely to be that you can do much here.

What criteria are you really looking for?

Perhaps your function segment returns null? So write if (!is_null($this->uri->segment('4'))).

Or perhaps you're looking for the empty string? So write if ($this->uri->segment('4') != "").


1

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

2

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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号