php传递类来实现功能

时间:2015-03-08 12:04:33

标签: php function class

我有一个属性transof

的类
    class translator {
      public function transof($phrase) { gives translation of phrase }
    }

现在我想将一个翻译实例传递给一个函数:

    function parse($part,$class) {
       $class->transof($part);
    }

    $tr = new translator("project","en");
    parse("exception",$tr);

有谁知道怎么做?  我知道这个例子很简单,并且可以在不使用函数的情况下轻松编写,但在我的真实世界示例中,我希望能够使用函数。

当然我可以在函数中使用全局$ tr,并在函数中使用它,但我不喜欢使用全局。

提前致谢

2 个答案:

答案 0 :(得分:0)

它按照您的意图执行,该对象被传递给函数解析。您需要做的就是在包含解析定义的php文件中或之前包含类定义文件,或者使用__autoload()函数,该函数将在需要时包含类定义。 您也可以这样定义解析:

function parse($part, translator $class) {
       $class->transof($part);
}

然后代码编辑器如Aptana等将知道该对象是什么类的实例,并且能够为您提供有关类结构的提示。

答案 1 :(得分:0)

如果您不想在全局代码中创建对象以获得更好的可维护性,那么您需要修改函数的签名,如下所示:

function parse($part,$project,$lang) {
   $class = new Translator($project,$lang);
   $class->transof($part);
}
parse("exception","project","en");