我有一个像
这样的课程public func LS(_ key: String) -> String {
let value = NSLocalizedString(key, comment: "")
if value != key || NSLocale.preferredLanguages.first == "en" {
return value
}
// Fall back to en
guard
let path = Bundle.main.path(forResource: "en", ofType: "lproj"),
let bundle = Bundle(path: path)
else { return value }
return NSLocalizedString(key, bundle: bundle, comment: "")
}
当我使用像
这样的课程时class Foo
{
public function runWithCallback($custom_callback) {
...
return call_user_func_array($custom_callback, [$arg_a, $arg_b]);
}
public function aHelperMethod($arg_a) {
...
}
}
当然上面的代码不起作用,因为$foo = new Foo();
$foo->runWithCallback(function($arg_a, $arg_b) {
...
// now I need to use helper method "aHelperMethod"
$this->aHelperMethod($arg_c); // wrong code
...
});
在匿名函数中没有任何意义。
有可能做我想做的事吗? THX。
答案 0 :(得分:0)
好的,感谢@BilalAhmed的评论,我找到了一个"脏"这样做的方式:
$foo = new Foo();
$foo->runWithCallback(function($arg_a, $arg_b) use ($foo) {
...
// now I need to use helper method "aHelperMethod"
$foo->aHelperMethod($arg_c); // wrong code
...
});