Я регистрирую пользователей через проверку подлинности Windows, а затем сохраняю эти права пользователя в переменной сеанса. Я использую ограниченный способ хранения прав в базе данных, а именно:in_array vs strpos для производительности в php
$rights //retrieved from database
= 'read,edit,delete,admin'
так что мой вопрос должен я;
//generate variable
$_SESSION['userrights'] = $rights ($rights is retrieved from database)
//use strpos to find if right is allowed
if (strpos($_SESSION['userrights'],"admin") !== false) { // do the function }
ИЛИ
//make array of rights
$_SESSION['userrights'] = explode(',',$rights)
//use in_array to find if right is allowed
if (in_array("admin",$_SESSION['userrights'])) { // do the function }
немного OCD вопрос, как я полагаю, разница будет в значительной степени ничтожна за то, что я делаю, но который был бы быстрее (использовать меньше ресурсов) метод?
Любые ответы, оцененные за исключением тех, которые оскорбляют мой метод хранения прав!
Используйте второй способ, конечно. Проверка определенного значения в массиве - гораздо лучший метод по сравнению с поиском значения внутри строки. Обратите внимание, что порядок аргументов 'in_array' - это« игла, стог сена », а не« сена, игла », как у вас там. – jszobody
2:50 ленивая копия и вставка! оцените ответ! – DJB
Почему вы не храните их в качестве ключей в ассоциативном массиве? Это должно быть быстрее, чем либо. – Barmar