第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

簡化一個函數(shù) php

簡化一個函數(shù) php

PHP
HUWWW 2019-03-08 12:26:11
function has_permission($uid,$type) { if($type==1){ if($uid==Session::get('user_id') || Session::get('group_id')==1 || Session::get('group_id')==2){ return true; }else{ return false; } } if($type==2){ if(Session::get('group_id')==1 || Session::get('group_id')==2){ return true; }else{ return false; } } if($type==3){ if(Session::get('group_id')==1){ return true; }else{ return false; } } } 寫了一個權(quán)限的函數(shù),能不能簡化一下,請指點。
查看完整描述

3 回答

?
白豬掌柜的

TA貢獻1893條經(jīng)驗 獲得超10個贊

最近迷上了不用分支語句寫代碼,小小試一下。

function hasPermission(int $currentUid, int $type = 0): bool
{
    $uid = (int)Session::get('user_id');
    $gid = (int)Session::get('group_id');
    
    $permissions = [
        false,
        $currentUid === $uid || $gid === 1 || $gid === 2,
        $gid === 1 || $gid === 2,
        $gid === 1
    ];
    
    return isset($permissions[$type]) && $permissions[$type];
}

平時代碼里面習慣了用完全相等來判斷,這樣可以省空值的類型變化引起的問題。增加了函數(shù)參數(shù)類型和返回值類型的聲明。

查看完整回答
反對 回復 2019-03-18
?
楊__羊羊

TA貢獻1943條經(jīng)驗 獲得超7個贊

function hasPermission($uid, $type)
{
    $functionName = 'hasType'.$type.'Permission';
    return call_user_func($functionName, $uid);
}

function hasType1Permission($uid)
{
    $sessionUid = Session::get('user_id');
    $sessionGid = Session::get('group_id');
    return $uid == $sessionUid || $sessionGid == 1 || $sessionGid == 2;
}

function hasType2Permission($uid)
{
    $sessionGid = Session::get('group_id');
    return $sessionGid == 1 || $sessionGid == 2;
}

function hasType3Permission($uid)
{
    $sessionGid = Session::get('group_id');
    return $sessionGid == 1;
}

代碼中最好不要使用1、2這種,閱讀代碼的人根本不清楚是什么意思。

查看完整回答
反對 回復 2019-03-18
?
動漫人物

TA貢獻1815條經(jīng)驗 獲得超10個贊

    function has_permission($uid, $type)
    {
        switch ($type) {
            case 1:
                return $uid == Session::get('user_id') || in_array(Session::get('group_id'),[1,2]);
            case 2:
                return in_array(Session::get('group_id'),[1,2]);
            case 3 :
                return Session::get('group_id') == 1;
            default:
                return false;
        }
    }
查看完整回答
反對 回復 2019-03-18
  • 3 回答
  • 0 關(guān)注
  • 467 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號