编程语言
首页 > 编程语言> > 在PHP中,如何在类中包含过程代码?

在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