我有一大块遗留的 php 代码,我需要与之交互,如下所示:
//legacy.php
function foo() {
}
function bar() {
}
我希望能够将这些遗留函数包装在一个类中或以某种方式 require_once ,而不污染该全局命名空间或更改原始文件。
您可以使用名称空间 http://www.php.net/manual/en/language.namespaces.rationale.php或类中的静态方法:
// original file: foo.php
class Foo
{
public static function foo() { }
public static function bar() { }
}
// new file:
require 'foo.php';
class MyNewClass
{
public function myfunc()
{
Foo::foo();
}
}
$x = new MyNewClass();
$x->myfunc();
两者都需要对文件进行轻微修改。例如,致电bar()
必须改为Foo::bar()
与上面的示例(具有静态方法的类)。
或者,使用命名空间:
namespace foo;
use \Exception;
// any other global classes
function foo() { }
function bar() { }
在你的文件中:
require 'foo.php';
foo\foo();
foo\bar();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)