我直接从php documentation开始,但我仍然遇到语法错误。这是代码。这是造成错误的第一行。
$options = [
'cost' => 12,
];
$hash = password_hash('$plaintext', PASSWORD_BCRYPT, $options)."\n";
解析错误:语法错误,意外'['
我是php的新手,并不熟悉这个数组语法,所以我很难拍摄它。我错过了什么?谢谢!
答案 0 :(得分:4)
你想要这个:
$options = array(
'cost' => 12
);
本文档中使用的数组语法适用于PHP 5.5。 password_hash()
也是如此。
此外,我怀疑您只需要'$plaintext'
而不是$plaintext
。除非您希望所有密码都是“$ plaintext”。
答案 1 :(得分:3)
我认为您使用的是旧版本的PHP。你能执行这段代码吗?
<?php
echo 'Current PHP version: ' . phpversion();
如果不是5.5,则第二个功能不起作用。你得到的错误是你的第一行,这是自PHP 5.4(?)以来可用的。该代码无效。
答案 2 :(得分:1)
您正在使用短数组语法,它将array()替换为[]。它仅适用于PHP 5.4&gt;
所以,而不是:
$options = [
'cost' => 12,
];
你想:
$options = array(
'cost' => 12,
);
文档:http://php.net/manual/en/language.types.array.php(参见示例#1)
希望这有帮助。
答案 3 :(得分:0)
代码必须是$options
是数组
$options = array(
'cost' => 12,
);
$hash = password_hash('$plaintext', PASSWORD_BCRYPT, $options)."\n";