Есть условная БД - массив. В качестве ключа хранится имя пользователя, в качестве значения хэш пароля. Я помечаю кукой пользователя и теперь хочу проверить есть ли он в БД или нет. Объясните как в этом случае ведет себя isset()? Проверка с помощью конструкции if работает, но если я делаю var_dump($usersList[$name]); мне выводится на экран только хэш пароля.
Читал мануал, но все равно не понял. Подскажите пожалуйста.
function getUsersList(){
return [
'Ivan' => '$2y$10$JRtKotHmvVSh0oJgW1WCTevnk3.ZT4aRWVR5LhyhRBMKBuVbNn6Uy', // 1234
'Grisha' => '$2y$10$dRHF86JVlGPitSmjNd/W1.oBGQp6DCRn4qvb2Yc6fWZFOkiYGVF/m', // 12346
'Ira' => '$2y$10$bwfsQ3krdA/wDe0CN8bd0e/nkfYntYeRYezWzGqyVgyMqdvpx8fvK', // 12344
'Sveta' => '$2y$10$TdJe4UMJOW9XG5P.ZW0ZZ.vEL3S1lSBkLirMlkrGM6QNrImF5yzUO', // 123488
];
}
session_start();
setcookie('name', 'Ira');
require_once __DIR__ . '/functions.php';
$name = $_COOKIE['name'];
$usersList = getUsersList();
if(isset($usersList[$name])){
echo 'Пользователь существет его имя ' . $name;
}else{
echo 'Пользователя нет в БД';
}
var_dump($usersList[$name]);
Открываем мануал и читаем еще раз:
Определяет, была ли установлена переменная значением отличным от NULL
Смотрим в вашу конструкцию
isset($usersList[$name])
Что здесь проверяется исходя из описания метода isset? Проверяется, что значение $usersList[$name] отлично от NULL.
Что для этого делается (грубо)? В массиве $usersList ищется ключ $name и проверяется равно ли значение этого ключа NULL или нет. Вот и всё.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей