Anyone ever used PHP's (unset) casting?

前端 未结 3 2114
陌清茗
陌清茗 2021-02-18 13:09

I just noticed PHP has an type casting to (unset), and I\'m wondering what it could possibly be used for. It doesn\'t even really unset the variable, it just casts

相关标签:
3条回答
  • 2021-02-18 13:15

    For example it can be used like this

    function fallback()
    {
        // some stuff here
        return 'zoo';
    }
    
    var_dump(false ? 'foo' : fallback()); // zoo
    var_dump(false ? 'foo' : (unset) fallback()); // null
    

    Even if fallback() returns "zoo" (unset) will clear that value.

    0 讨论(0)
  • As far as I can tell, there's really no point to using

    $x = (unset)$y;
    

    over

    $x = NULL;
    

    The (unset)$y always evaluates to null, and unlike calling unset($y), the cast doesn't affect $y at all.

    The only difference is that using the cast will still generate an "undefined variable" notice if $y is not defined.

    There's a PHP bug about a related issue. The bug is actually about a (in my mind) misleading passage elsewhere in the documentation which says:

    Casting a variable to null will remove the variable and unset its value.

    And that clearly isn't the case.

    0 讨论(0)
  • 2021-02-18 13:34

    I’d guess (knowing PHP and it’s notaribly... interesting choices for different things, I may be completely wrong) that it is so that the value does not need setting to a var. For exact reason to use it for a code, I can’t think of an example, but something like this:

    $foo = bar((unset) baz()); 
    

    There you want or need to have null as argument for bar and still needs to call baz() too. Syntax of function has changed and someone did a duck tape fix, like what seems to be hot with PHP.

    So I’d say: no reason to use it in well-thought architecture; might be used for solutions that are so obscure that I’d vote against them in first place.

    0 讨论(0)
提交回复
热议问题