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!
Advertisement
Answer
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