password_hash() expects at least 2 parameters 1 givenというエラーについて
パスワードハッシュを作成するためにpassword_hash()
関数を使用したのだが下記のエラーが表示された。
Warning: password_hash() expects at least 2 parameters, 1 given in
翻訳すると『警告: password_hash() は、少なくとも 2 つのパラメーターを必要とします。』とのこと。なので下記のようにパラメータを設定しました。
<?php
password_hash($password, PASSWORD_DEFAULT);
?>
原因
password_hash()
関数を使うときはエラーの内容の通り、第二引数まで指定が必須であること。第一引数までしか指定してなかったため、表題のようなエラーが表示されてしまった。下記のコードは第二引数を指定していない(パスワードのハッシュに使用されるアルゴリズムが指定されていない)のでエラーが表示されます。
<?php
password_hash($password);
?>
ちなみにphp8では下記のアルゴリズムに対応していますので詳しくは関数リファレンス – password_hash)をご覧ください。
- PASSWORD_DEFAULT
- PASSWORD_BCRYPT
- PASSWORD_ARGON2I
- PASSWORD_ARGON2ID