我直接从php 文档中获取这个,但我仍然遇到语法错误。这是代码。这是导致错误的第一行。
$options = [
'cost' => 12,
];
$hash = password_hash('$plaintext', PASSWORD_BCRYPT, $options)."\n";
解析错误:语法错误,意外的 '['
我对 php 很陌生,并且不熟悉这个数组语法,所以我很难解决它。我错过了什么?谢谢!
你想要这个:
$options = array(
'cost' => 12
);
文档中使用的数组语法适用于 PHP 5.5。也是如此password_hash()
。
另外,我怀疑'$plaintext'
您想要的不是$plaintext
. 除非您希望所有密码字面上都是“$plaintext”。
我认为您使用的是旧版本的 PHP。你可以执行这段代码:
<?php
echo 'Current PHP version: ' . phpversion();
如果不是 5.5,那么第二个功能将不起作用。你得到的错误是你的第一行,从 PHP 5.4(?) 开始可用。否则代码是有效的。
您正在使用短数组语法,它将 array() 替换为 []。它仅适用于 PHP 5.4 >
所以,而不是:
$options = [
'cost' => 12,
];
你要:
$options = array(
'cost' => 12,
);
文档: http: //php.net/manual/en/language.types.array.php(参见示例 #1)
希望这可以帮助。
代码必须是 if$options
是一个数组
$options = array(
'cost' => 12,
);
$hash = password_hash('$plaintext', PASSWORD_BCRYPT, $options)."\n";