php password_hash语法错误

时间:2013-07-03 05:22:30

标签: php hash

我直接从php documentation开始,但我仍然遇到语法错误。这是代码。这是造成错误的第一行。

$options = [
  'cost' => 12,
];
$hash = password_hash('$plaintext', PASSWORD_BCRYPT, $options)."\n"; 
  

解析错误:语法错误,意外'['

我是php的新手,并不熟悉这个数组语法,所以我很难拍摄它。我错过了什么?谢谢!

4 个答案:

答案 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";