我想知道是否有更简单的方法为我的变量赋值:
$foo = bar($baz); // 'NULL' or '0' or '1' or '2' or ...
$foo = $foo ?: 0; // '0' or '1' or '2' or ...
我的问题是$foo
可以是NULL
或正整数,包括0
。
如果值0
,我希望它变为NULL
,如果不是,则保持其值。
感谢您的回答。
修改
我无法合并2行,所以我的问题只针对第二行。
答案 0 :(得分:3)
试试这个;)
$foo = intval( $foo );
答案 1 :(得分:1)
你可以这样做:
$foo = bar($baz) ?? 0;
如果您使用的是PHP7,那么您可以这样做:
specs
答案 2 :(得分:0)
也许你可以试试:
$foo = is_null($foo) ? 0: $foo;
答案 3 :(得分:0)
我无法合并2行,所以我的问题只针对第二行。
但这是一个可行的解决方案:
$foo = bar($baz) ?: 0;
三元运算符的简短版本意味着:如果不能将条件转换为false,则从条件中获取值
P.S。更好的方法是委托该逻辑发挥作用。
答案 4 :(得分:0)
试试这个
$ foo =($ foo = bar($ baz))? $ foo:0;