繁体   English   中英

PHP中的条件

[英]Conditions in PHP

如何简化此PHP条件?

<?php
function authUser( $user, $pass )
{
    switch( $user )
    {
        case "name01":
            if( md5( $pass ) == "sadf7ds8f7sda8f787f8ads7f8sad7fsa8" )
                return TRUE;
            else
                return FALSE;
            break;

                case "name02":
            if( md5( $pass ) == "sadf89f8dsa9f8sad8fs9d89f89f8ds9a8fsd9a" )
                return TRUE;
            else
                return FALSE;
                break;
    }   
}
?>

这可能会更好一些:

function authUser( $user, $pass )
{
  $users = array('name01' => 'sadf8sad9f8sdaf98sa98fsd9a8fs8df');
  return (array_key_exists($user, $users) && $users[$user] == $pass);
}

只需根据需要将更多用户添加到关联数组。

编辑:

如果仍然需要使用switch语句,这将更简单:

function authUser( $user, $pass )
{
    switch( $user )
    {
        case "name01":
            return md5( $pass ) == "sadf7ds8f7sda8f787f8ads7f8sad7fsa8";
        case "name02":
            return md5( $pass ) == "sadf89f8dsa9f8sad8fs9d89f89f8ds9a8fsd9a";
    }   
}

如果您想轻松做,我建议您这样做:

function authUser( $user, $pass )
{
    $user_list = array(
        'user01' => 'password01',
        'user02' => 'password02',
        'user03' => 'password03',
        'user04' => 'password04',
        'user05' => 'password05'
    );

    if(array_key_exists($user, $user_list))
    {
        if($user_list[$user] == $pass)
        {
            // login stuff
        }
        else
        {
            return "Password incorrect";
        }
    }
    else
    {
        return "User not found.";
    }
}

您可以按照以下语法进行操作。

<?php

// Predefined Passwords
$passwords = array(
    'user1' => '039a726ac0aeec3dde33e45387a7d4ac',   // User: user1 Password: monsters
    'user2' => 'fe01ce2a7fbac8fafaed7c982a04e229' //User: user2 Password: demo
);

function authUser($user, $pass)
{
    //Switch the user
    switch($user)
    {
        // Default to this function
        case default:
            // Check if the pass matches the user
            if(md5($pass) == $passwords[$user]) {
                // It did, return true
                return true;
            }
            else {
                // Whoops, wrong info
                return false;
            }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM