即使未设置

时间:2017-11-23 18:25:40

标签: php

在我的模板中,我使用了一个名为balance()的函数。

function balance($authUser = null) {
    // do stuff
}

balance()函数接受可选参数:$authUser

并不总是设置$authUser变量,因此根据应用程序中balance()的使用位置,会不时抛出错误。

我当然可以执行以下操作来检查$authUser是否可用,如果没有设置...

$authUser = isset($authUser) ? $authUser : null;

if($balance($authUser) {
    // do stuff
}

但是这感觉很粗糙而且很笨重,而且我必须在多个地方做这件事,如果还有另一种方式,我宁愿不这样做。

有没有办法做这样的事情,所以如果$authUser没有设置,就不会抛出错误?

if(balance(isset($authUser))) {
    // do stuff
}

更新

这是balance()功能

function balance($authUser = null)
{
    if(auth()->guest()) {
        return [];
    }

    // if $authUser is set, just return it
    if($authUser) {
        return $authUser->account->balance;
    }

    // otherwise lookup the balance in the database
    return auth()->user()->getBalance();
}

2 个答案:

答案 0 :(得分:2)

那里。

我不太确定我是否理解了你的疑问。但您可以在balance()方法中进行验证,如下所示:

function balance($authUser = null) { 
    if (!$authUser) return false;

    //Your code here
}

答案 1 :(得分:0)

在调用balance()函数

之前,您可以拥有if条件
if(!empty($authUser)) {
//call balance function 
balance($authUser); 
}