password_hash returns 空

password_hash returns NULL

为什么 documentation 声明 password_hash 可以 return 字符串或值 false,但下面的代码行 returns NULL?

$password = password_hash($password1, PASSWORD_BDCRYPT, array( 'cost' => 10 ));

尽管没有记录,但当为算法提供不正确的值时,函数会 return NULL。

当前支持的常量是:

  • PASSWORD_BCRYPT
  • PASSWORD_DEFAULT

并且在这种情况下的拼写错误(PASSWORD_BDCRYPT 而不是 PASSWORD_BCRYPT)导致传递 NULL 值,这反过来导致与 return 相同的值。


编辑:之前未定义的任何其他字符串也将评估为 NULL。

如前所述,不正确的参数会导致 NULL 被 returned。只是为了完整:请注意,这不仅适用于不正确的算法编号,还适用于提供不正确的 $options 参数 - 例如呼叫:

password_hash('something', PASSWORD_DEFAULT, 10);

也将 return NULL,没有其他错误。