将命名空间添加到phpass(或任何类)

时间:2014-02-23 13:38:32

标签: php oop namespaces phpass

我正在使用http://www.openwall.com/phpass/进行散列。我希望为它添加名称空间,并添加单行,如下所示。

<?php
namespace myNameSpace;  //I added this one line
class PasswordHash {
  //...
}
?>

然后我创建了我的对象,但是,当我应用HashPassword方法时,结果完全不同。

require 'PasswordHash.php';
//$t_hasher = new PasswordHash(8, FALSE); //Original line
$t_hasher = new myNameSpace\PasswordHash(8, FALSE);

$correct = 'test12345';
$hash = $t_hasher->HashPassword($correct);

唯一的变化是我将类名称空间添加到类中的两行,并且我启动了对象。

什么可能导致差异以及如何识别和修复它们?

1 个答案:

答案 0 :(得分:0)

根据文档http://us2.php.net/__destruct

  

从PHP 5.3.3开始,与a的最后一个元素同名的方法   命名空间的类名将不再被视为构造函数。这个   更改不会影响非命名空间的类。

phpass使用与命名空间类的最后一个元素同名的构造函数。将名称更改为__construct