Почему в документации указано, что password_hash
может возвращать строку или значение false, но следующая строка кода возвращает NULL?
$password = password_hash($password1, PASSWORD_BDCRYPT, array( 'cost' => 10 ));
Несмотря на то, что он не документирован, функция возвращает NULL, когда вы предоставляете неверное значение для алгоритма.
В настоящее время поддерживаются константы:
PASSWORD_BCRYPT
PASSWORD_DEFAULT
И опечатка в этом случае ( PASSWORD_BDCRYPT
а не PASSWORD_BCRYPT
) приводит к тому, что значение NULL передается, что в свою очередь вызывает то же значение, что и возврат.
Изменить: любая другая строка, которая не была определена ранее, также будет оцениваться как NULL.
Как было сказано ранее, неправильный параметр приводит к возврату NULL. Просто чтобы быть полным: обратите внимание, что это происходит не только за неправильный номер алгоритма, но и за предоставление неверного параметра $ options – например, вызов:
password_hash('something', PASSWORD_DEFAULT, 10);
также возвратит NULL без каких-либо других ошибок.