【发布时间】:2014-02-23 13:38:31
【问题描述】:
我正在使用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);
唯一的变化是我将命名空间添加到类的两行以及我是否启动了对象。
什么可能导致差异以及如何识别和修复它们?
【问题讨论】:
-
请发布您的输出是什么,以及您期望它是什么。从您的问题中,我无法猜测“有什么区别”...因为您向我们提供的所有内容“结果完全不同”...
-
@Tularis。我可以并且会发布差异。为什么会有任何差异?什么可能导致基于命名空间的差异?
-
好吧,你突然将你的类分配到不同的命名空间这一事实可能会导致一个类引用一个曾经在 no 命名空间内的函数的问题,现在是突然合二为一。这反过来又会导致它的功能不同。
-
@Tularis 它没有引用任何其他函数。我最终偶然发现了这个问题。需要注意的地方。感谢您的帮助。
标签: php oop namespaces phpass