我怎样才能使功能性如果'声明

时间:2016-02-25 14:34:15

标签: php if-statement

if ($variable=="x") {  
    $xs = 10;
}

if ($variable=="y") {
    $xy = 12;
}

我想发表功能if声明。我可以用循环代替一个一个吗?

我如何形成这个,如:

if $variable = a(0.) , b(1.) , c(2.) , d(3.) , e(4.) )  
$variables=(n+1)*7

示例:

if $variable = a  
n=0  
$variables=7

示例:

if $variable=d  
n=3  
$variables = 28

2 个答案:

答案 0 :(得分:2)

你在找这样的东西吗?

$variables = (ord(strtoupper($variable)) - ord('A') + 1) * 7;

解释

ord()返回char的ASCII值,然后你只需减去'A'的ASCII值(字母表的第一个字符),然后添加一个(从你的公式中)并乘以7

BTW我建议在使用函数之前测试$variable值...

答案 1 :(得分:0)

答案是如果检查 (有点) functional,你可以做到这一点:

$ifs = [ 'x' => 10, 'y' => 12 ];
$outs = [];
$variable = 'x';

array_walk($ifs, function($i, $k) use($variable, &$outs) {
    if($k === $variable) {
        $outs[$k] = $i;
    }
});

var_dump($outs);

我认为真正的问题是你是否真的想要。