I am logging in users via windows authentication and then storing that user's rights in a session variable. I use a delimited method of rights storage in a database i.e:
$rights //retrieved from database
= 'read,edit,delete,admin'
so my question is should I;
//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 }
OR
//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 }
Bit of a OCD question as I presume the difference will be pretty much negligible for what I am doing but which would be the faster (use less resources) method?
Any answers appreciated except ones that insult my method of rights storage!
strpos
is the fastest way to search a text needle, per the php.net documentation for strstr()
:
If you only want to determine if a particular needle occurs within haystack, use the faster and less memory intensive function strpos() instead.1