我有一个属性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,并在函数中使用它,但我不喜欢使用全局。
提前致谢
答案 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");