Объясните как это работает пожалуйста

257
17 августа 2021, 16:00

Есть условная БД - массив. В качестве ключа хранится имя пользователя, в качестве значения хэш пароля. Я помечаю кукой пользователя и теперь хочу проверить есть ли он в БД или нет. Объясните как в этом случае ведет себя 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]);
Answer 1

Открываем мануал и читаем еще раз:

Определяет, была ли установлена переменная значением отличным от NULL

Смотрим в вашу конструкцию

isset($usersList[$name])

Что здесь проверяется исходя из описания метода isset? Проверяется, что значение $usersList[$name] отлично от NULL.

Что для этого делается (грубо)? В массиве $usersList ищется ключ $name и проверяется равно ли значение этого ключа NULL или нет. Вот и всё.

READ ALSO
как вывести один сайт вместо другого

как вывести один сайт вместо другого

есть сайт 1 по адресу exemplecom

172
как в $_SERVER передать get запрос

как в $_SERVER передать get запрос

имею самописный роут у меня есть параметр get который работает в index то есть index/?page=1 как мне прировнять get параметр в условии? что-бы тип такого...

174
Оптимизация запроса php на удаление

Оптимизация запроса php на удаление

Всем привет, есть такой запрос на удаление, сейчас он нагружает процна 100%

148
Как составить sql запрос c объединением?

Как составить sql запрос c объединением?

в общем, есть проблемка, нужно объединить две таблицы в sql запросе

113