Re: UNLESS Statement Equivalent
[email protected] (Maciek Sokolewicz)
| Newsgroups | php.general |
|---|---|
| Message-ID | <[email protected]> |
On 11-3-2013 22:32, Angela Barone wrote:
> I'm looking for an 'unless' statement, but as far as I can tell, PHP doesn't have one. Hopefully someone can help me rewrite my statement.
>
> In English, I want to say: "always do something UNLESS these 3 conditions are met".
>
> The best I've been able to come up with in PHP is this:
>
> if ( ($current_page == $saved_page) and ($current_ip == $saved_ip) and ($current_dt < ($saved_dt + 3600)) ) {
> return;
> } else {
> $query = "UPDATE `table` SET `hits` = '$count', `agent` = '$agent', `ts` = '$date_time' WHERE `page` = '$page'";
> $result = mysql_query($query) or die ('Error! -- ' . mysql_error());
> }
>
> However, I've read where this is not really acceptable. Can someone help me eliminate the 'else' portion of this if statement?
>
> Thank you,
> Angela
>
> P.S. I realize the above isn't complete code but it should still be clear. If not, let me know.
>
Logically, unless means the same as if not. As long as you condense
your entire expression to a single boolean result, the only thing you
would need to do is negate it to create your unless-statement.
In code, this would mean:
unless ( $a )
=
if ( !$a )
or to show it in a more clear way:
unless ( $a and $b )
=
if ( ! ($a and $b) )
So in simple terms, just stick a ! (or the keyword not) in front of your
expression, and you'll have exactly what you want:
if( not ( ($current_page == $saved_page) and ($current_ip == $saved_ip)
and ($current_dt < ($saved_dt + 3600) ) ) {