我正在使用第三方ostickets应用程序。 include / class.passwd.php的第17行包含使用require_once(INCLUDE_DIR.'PasswordHash.php');
创建对象的代码class PasswordHash {...}
。
我的问题是我在脚本中使用第三方类PashwordHash而不是ostickets,而且我首次使用PasswordHash时需要使用ostickets。
由于ostickets是一个包,它包含自己的PasswordHash.php副本,因此required_once
不会阻止该类被声明两次。我宁愿不使用if(!class_exists('PasswordHash')){require_once(INCLUDE_DIR.'PasswordHash.php');}
之类的东西修改osticket包,因为如果我升级ostickets并忘记进行更改,这将导致问题。
我还不想通过再次更改类名来修改包含PasswordHash类的第一个文件,以便将来升级而不会出现问题。
我看到他们的选择......
由于
答案 0 :(得分:3)
这确实是命名空间的用途:
<?php
namespace NiceNamespaceName;
class PasswordHash
{
}
?>
然后你可以这样使用它:
<?php
$hash = new \NiceNamespaceName\PasswordHash();
?>