PHP-有设置变量值的方法吗?

我总是发现自己在写一些类似的东西:

if(isset($var))
{
    DoSomethingWith($var);
}
else
{
    DoSomethingWith(null);
}

要么

if(isset($arr["key"]))
{
    DoSomethingWith($arr["key"];
}
else
{
    DoSomethingWith(null);
}

我的问题是这样的:

有没有一种方法可以编写get_var_if_set()函数,以便您可以简单地编写…

DoSomethingWith(get_var_if_set($var));
/// and
DoSomethingWith(get_var_if_set($arr["key"]));

….是否通知$var不存在或$arr没有为“ key”设置的值?

我想应该是这样的:

function get_var_if_set($a)
{
    return (isset($a) ? $a : null);
}

但这是行不通的,因为用未设置的变量调用get_var_if_set()总是会生成一个Notice,因此可能需要一点魔力.

谢谢大家.

编辑
删除答案的用户建议通过引用传递变量,因为如果$variable不存在,PHP将传递null.

因此,这很完美,请查看以下解决方案(可能为equivalent):

function get_var_if_set(&$a) { return (isset($a) ? $a : null); }
function get_var_if_set(&$a) { return $a ?? null; } // Only in PHP 7.0+ (Coalescing operator)

注意:Koray Küpe建议的合并运算符

问题as you can see是它们以某种方式在return语句中初始化传递的变量.
我们不想要那个.

解决方法:

如果使用PHP 7.0,则可以使用空合并运算符.

return $a ?? null;

注意:运算符检查变量是否存在并且不为空.因此,如果变量已设置但为空,则它将返回空变量.

上一篇:【LeetCode】215. 数组中的第K个最大元素 C++


下一篇:LeetCode-215 数组中的第K个最大元素