0

我直接从php 文档中获取这个,但我仍然遇到语法错误。这是代码。这是导致错误的第一行。

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

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

我对 php 很陌生,并且不熟悉这个数组语法,所以我很难解决它。我错过了什么?谢谢!

4

4 回答 4

4

你想要这个:

$options = array(
  'cost' => 12
);

文档中使用的数组语法适用于 PHP 5.5。也是如此password_hash()

另外,我怀疑'$plaintext'您想要的不是$plaintext. 除非您希望所有密码字面上都是“$plaintext”。

于 2013-07-03T05:23:48.460 回答
3

我认为您使用的是旧版本的 PHP。你可以执行这段代码:

<?php
 echo 'Current PHP version: ' . phpversion();

如果不是 5.5,那么第二个功能将不起作用。你得到的错误是你的第一行,从 PHP 5.4(?) 开始可用。否则代码是有效的。

于 2013-07-03T05:26:22.473 回答
1

您正在使用短数组语法,它将 array() 替换为 []。它仅适用于 PHP 5.4 >

所以,而不是:

$options = [
  'cost' => 12,
];

你要:

$options = array(
  'cost' => 12,
);

文档: http: //php.net/manual/en/language.types.array.php(参见示例 #1)

希望这可以帮助。

于 2013-07-03T05:36:45.390 回答
0

代码必须是 if$options是一个数组

$options = array(
  'cost' => 12,
);
$hash = password_hash('$plaintext', PASSWORD_BCRYPT, $options)."\n"; 
于 2013-07-03T05:27:45.477 回答