[英]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.