Mark on WordPress

Doublebang

Posted in wordpress by Mark Jaquith on October 11th, 2007

Ever seen or written this PHP code?

function foo( $foo ) {
    // magic
    if ( $foo ) // $foo is not bool
        return true;
    else
        return false;
}

So you want to return a boolean value (true/false) but $foo isn’t a bool so you can’t return it directly.

Option 1, cast to boolean:

function foo( $foo ) {
    // magic
    return (boolean) $foo;
}

Option 2, cast to “bool” (shortcut):

function foo( $foo ) {
    // magic
    return (bool) $foo;
}

Option3, doublebang:

function foo( $foo ) {
    // magic
   return !!$foo;
}

The first ! (the “not” operator) casts $foo to a negative bool, and the second one flips it back to the bool representation of its original value.

And of course if you want to return true when the variable evaluates as false, you can just do:

function foo( $foo ) {
    // magic
    return !$foo;
}

Appologies to anyone who has read this far and was expecting pornography.

24 Responses to 'Doublebang'

Subscribe to comments with RSS or TrackBack to 'Doublebang'.

  1. n-blue said, on October 11th, 2007 at 1:57 pm

    Besic thing, love to see.
    Btw, if some porn for extra will be the best :D

  2. Aja said, on October 11th, 2007 at 2:03 pm

    Heh. Thanks for this, but I really didn’t know “doublebang” refers to porn. :P

  3. Mark Steel said, on October 11th, 2007 at 2:17 pm

    (* Stares at Aja and blinks in disbelief *)

    You’re a young pup, still… ;-)

  4. Mark Ghosh said, on October 11th, 2007 at 2:44 pm

    Hahahahaha!

  5. Javier Aroche said, on October 11th, 2007 at 2:58 pm

    LOL, nice post end xD

  6. expresion-x said, on October 11th, 2007 at 3:53 pm

    Yes, I came here looking for php code…. yes It’s true! XD

  7. Peter Westwood said, on October 11th, 2007 at 4:36 pm

    I would have to say that if we are trying to write obtuse but valid php code then either return $foo && $foo or the more elegant, and a favourite of mine return $foo ? true : false

  8. taby said, on October 11th, 2007 at 6:23 pm

    nice job

  9. Viper007Bond said, on October 11th, 2007 at 8:46 pm

    Pretty cool!

    I just usually use this though:

    return ( !empty($foo) ) ? TRUE : FALSE;

  10. Top Posts « WordPress.com said, on October 12th, 2007 at 1:20 am

    [...] Doublebang Ever seen or written this PHP code? [...]

  11. scott47 said, on October 12th, 2007 at 4:23 am

    A programmer I see!!! I took two years of computer programming in my schooling. It helped me a lot, sometimes I would use the software to create simple games or to figure out my homework =]
    http://scott47.wordpress.com/

  12. Ozh said, on October 12th, 2007 at 7:48 am

    Someone fancying an Obfuscated PHP Contest like Perl had? :)

  13. n-blue said, on October 12th, 2007 at 10:39 am

    @Aja
    More familiar to “Gangbang”? ;)

  14. rxbbx said, on October 13th, 2007 at 5:54 am

    Nice.. fun :)

  15. Aja said, on October 13th, 2007 at 12:43 pm

    @n-blue: Now, I know. ROFL

    @Viper007Bond: return !empty($foo); would actually produce the same result, the ternary op just makes it explicit and redundant. Besides, !! is still shorter than !empty(). :)

  16. Mark Steel said, on October 14th, 2007 at 2:29 pm

    rxbbx: Now, now, “gang” suggest more than two … heh

  17. Mark Steel said, on October 14th, 2007 at 2:30 pm

    Err, oops. I meant n-blue. Sorry. ;-) (Of course, I’d throw a missing “s” up there if I could edit, too)

  18. dlab said, on October 16th, 2007 at 4:07 pm

    i got here because i thought it referred to Max/MSP

  19. Maja said, on October 17th, 2007 at 2:50 pm

    … I was so disappointed…

  20. Jack said, on October 18th, 2007 at 9:33 pm

    so guys.. gangbang.. em.. what is it?

  21. vlad said, on October 23rd, 2007 at 1:26 am

    I realize this is completely off-topic, but is it possible to order front page posts - last commented on top? And if it is possible, (there is no plugin-I checked) what would writing a this kind of plugin include?

  22. Paris Exposed - Paris Hilton Sex Tape said, on November 30th, 2007 at 5:56 pm

    Uncensored Paris Hilton sex tape point

    Paris Exposed - Paris Hilton Sex Tape

  23. slutratry said, on January 20th, 2008 at 12:37 am

    http://www.google.com
    http://www.yahoo.com
    http://www.msn.com

  24. links for 2008-01-24 | a minor technicality said, on January 24th, 2008 at 3:22 am

    [...] Doublebang « Mark on WordPress (tags: php wordpress) Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages. [...]

Leave a Reply