Ruby的“|| =”赋值习惯用法的PHP等价物是什么?
场景是我想“按需”实例化对象或数组,而不一定是在初始化类时。
我试图在PHP文档中找到这个,但是我很难在那里找到我需要的东西(想念Ruby)。
谢谢!
答案 0 :(得分:2)
我认为PHP没有类似的赋值语法。你必须用这样的东西伪造它:
if (empty($someVar)) $someVar = "DefaultVal";
注意:我不熟悉Ruby,所以我读了|| = operator here。我不确定那个操作员,如该链接所解释的那样,可以帮助你做你想做的事,但无论如何。
答案 1 :(得分:2)
怎么样:
<?php $someVar ?: 'default value'; ?>
这适用于PHP 5.3。
答案 2 :(得分:1)
答案是正确的,但是如果该值不存在,它将引发E_NOTICE。例如exports.myFunctionName = functions.firestore.document('users/marie').onWrite((change, context) => {
// ... the change or context objects do not contain the request data
});
。如果$_GET['key']
不在key
的数组中,它将引发E_NOTICE。
如果您使用的是PHP 7(我强烈建议您使用),则有一个名为Null Coalesce Operator的新功能。
这样,如果存在且不为NULL,则返回其第一个操作数的结果,否则返回第二个操作数的结果:
$_GET
答案 3 :(得分:0)
这是我想念Ruby的其中一件事。你也可以这样做:
$foo = empty($foo) ? "default" : $foo;
虽然很难看。
答案 4 :(得分:0)
谢谢你们!所有这些响应都很有帮助(我已经阅读了文档的变量部分,但没有找到那里引用的empty())。
我最终使用了另一个帖子中发布的“isset($ x)|| $ x = 1”版本(我之前的搜索没有出现 - 搜索特殊字符是有问题的。)
我打算给大家点数,但如果没有注册,我似乎无法做到这一点,我厌倦了为我经常使用的1,001个网站做的事情。 ;)