在PHP中,如何在类中包含过程代码?
作者:互联网
我有一大块遗留的PHP代码,我需要与之接口,如下所示:
//legacy.php
function foo() {
}
function bar() {
}
我希望能够将这些遗留函数包装在类或某种方式require_once中,而不会污染该全局命名空间或更改原始文件.
解决方法:
您可以在类中使用namespace或静态方法:
// 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();
标签:php,namespaces,legacy-code 来源: https://codeday.me/bug/20190630/1338933.html