Более простой способ определить эти переменные? - PullRequest
0 голосов
/ 15 августа 2010
$access_community = 1;
$access_content = 1;
$access_tools = 1;
$access_administrator = 0;
$access_moderator = 0;

Просто интересно, есть ли более простой способ написать это с использованием массива?Это похоже на излишество.

Спасибо!

Ответы [ 3 ]

6 голосов
/ 15 августа 2010

Вы можете сделать что-то вроде (отстой для читабельности):

$access_community = $access_content = $access_tools = 1;
$access_administrator = $access_moderator = 0;

Или, как уже было сказано, используя массив:

$access = array('community' => 1,
                'content' => 1,
                'tools' => 1,
                'administrator' => 0,
                'moderator' => 0);
0 голосов
/ 15 августа 2010

Поскольку вы вряд ли можете объяснить, что вы делаете и почему, мы можем только догадываться.

Это выглядит как ACL .
Таким образом, единственный разумный способ установить эти переменные - это сохранить их в базе данных. Особенно, если в будущем их будут десятки.

http://phpgacl.sourceforge.net/ это, вероятно, то, что вы ищете

Итак, вашим переменным будут присвоены значения из базы данных.

Что касается ответа, который вы задали, - нет, другого способа инициализации разных переменных с разными значениями не существует. Вы должны явно установить каждое значение переменной. Итак, вы должны как-то определить имя переменной и ее значение. Итак,

$variable = value

- самый простой и удобный способ.
Вы можете сделать это более сложным способом, но в основе он остается прежним: пары «имя переменной - значение переменной»

0 голосов
/ 15 августа 2010

Если у вас было больше переменных, то что-то вроде:

$access = array( 'community' => 1, 'content' => 1, ... );
foreach ($access as $k => $v) {
    $real_name = 'access_' . $k;
    $$real_name = $v;
}

Может сработать, но это не так приятно, и, вероятно, даже более излишним, чем ваш код сейчас. Я думаю, что то, что у тебя есть, не так уж плохо, если честно!

Если вам интересно, здесь используются косвенные ссылки или «переменные переменные» для фактического определения новых переменных. Однако я не слишком уверен насчет сферы применения.

Конечно, если вы можете, попробуйте и просто используйте массив напрямую, а не полагайтесь на имеющиеся там переменные - массивы можно изменять и передавать в отличие от переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...