Php 跨语言交际
我正在将网站翻译成不同的语言,我在这个函数旁边停了下来,因为我无法用Php 跨语言交际,php,Php,我正在将网站翻译成不同的语言,我在这个函数旁边停了下来,因为我无法用$AppUI->(('computing..')替换“Skaiciavimas jau vykdomas”。我怎么可能把它修好呢 public function BeginCalc() { if($this->getActive()) { echo "Skaiciavimas jau vykdomas"; } else { $this->_Beg
$AppUI->(('computing..')
替换“Skaiciavimas jau vykdomas”。我怎么可能把它修好呢
public function BeginCalc()
{
if($this->getActive())
{
echo "Skaiciavimas jau vykdomas";
}
else
{
$this->_BeginCalculation();
echo "Skaiciavimas pradetas";
}
}
正如注释中所解释的,这里的问题是在函数
BeginCalc()
中没有变量$AppUI
。它应该从哪里来?从天上掉下来?用魔法出现?您必须创建它,或者必须将其作为参数移交给函数,如下所示:
<?php
public function BeginCalc($AppUI)
{
if($this->getActive())
{
$AppUI->_('Calculating..');
}
else
{
$this->_BeginCalculation();
echo "Skaiciavimas pradetas";
}
}
BeginCalc($AppUI);
我们不能说更多了,因为您不知道
$AppUI
是什么意思,它应该从哪里来……不清楚您要问什么。您的代码中没有$AppUI->(('computing..')
。。。如果您正在谈论更换第一条回显线路,那么$AppUI
应该来自哪里?它可能在该位置未定义。您可能希望将该对象(如果它存在于调用范围中)作为参数传递给函数。但是如果你不发布更多的代码,我们就说不出来。我想用$AppUI->('cuculating..')替换“Skaiciavimas jau vykdomas”,我想问,如果不是,我是否可以删除这个主题>我在上面的评论中回答了这个问题。你在评论中有什么不明白的吗?那就问吧!所有的代码,我需要用这个$AppUI->('computing..')
来替换,因为我可以翻译这个计算。。。用其他语言。你明白吗?这个系统只会识别以这种方式书写的单词是的,我明白。但我上面写的仍然是一样的:$AppUI
没有在该函数中定义。它应该从哪里来?这是编程中的一个基本问题:变量的范围。我还编写了上面的解决方案:将$AppUI
作为参数交给函数。现在我明白了。因为问题非常不清楚($AppUI
可能是全局的,使全局的$AppUI
成为更好的解决方案,或者它可能是另一个类的成员,或者…或者…)我建议删除答案,因为它不会最终试图回答问题。好吧,显然你猜对了,那就别管我了。@NielsKeurentjes使用global$AppUI
never是一个很好的解决方案!它可能会工作,但这是一个糟糕的解决方案。如果$AppUI
是一个全局变量,并且打算在全局范围内使用,那么它就是正确的解决方案。从显示的代码量中,您无法知道它是否坏——很可能是坏的,但这将是周围框架或应用程序中更高级别选择的结果。仅仅盲目地调用global
邪恶就像经常发生的盲目调用goto
或eval
邪恶一样错误——所有这些构造都有其存在的理由和良好的用途,它们只是经常被滥用。但这并不意味着它们在特定情况下的谨慎使用无效。