如果声明捷径或改善?

Bru*_*uce 0 php

有没有办法改进下面的if语句块?我只是想知道是否有人可以使这个代码更简单,更清洁.

if($key == 'insert'){
    $permission[] = '1';
}else if($key == 'inter-insert'){
    $permission[] = '2';
}else if($key == 'intra-insert'){
    $permission[] = '3';
}else if($key == 'view'){
    $permission[] = '4';
}else if($key == 'inter-view'){
    $permission[] = '5';
}else if($key == 'intra-view'){
    $permission[] = '6';
}else if($key == 'update'){
    $permission[] = '7';
}else if($key == 'inter-update'){
    $permission[] = '8';
}else if($key == 'intra-update'){
    $permission[] = '9';
}else if($key == 'delete'){
    $permission[] = '10';
}else if($key == 'inter-delete'){
    $permission[] = '11';
}else if($key == 'intra-delete'){
    $permission[] = '12';
}
Run Code Online (Sandbox Code Playgroud)

Pek*_*ica 8

一个switch声明将让您的生活简单一点.

在这种简单的情况下,这是一个从一个值到另一个值的简单赋值,你也可以使用一个数组:

$permissions = array(
 "insert" =>       "1", 
 "intra-insert" => "2",
 "inter-insert" => "3",
 // etc.
);

isset($permissions[$key]) && $permission[] = $permissions[$key];
Run Code Online (Sandbox Code Playgroud)

或另一种变体:

$keyExists = array_key_exists($key, $permissions);
if ($keyExists) {
    $permission[] = $permissions[$key];
} else {
    echo "Key not found!"; // or whatever   
}
Run Code Online (Sandbox Code Playgroud)