在PHP中使用strtoupper()和多个本地化字符串来处理大写/混合大小写变体,而不是单个字符串


Performace with multiple localized strings for uppercase/mixed case variants vs a single string and use strtoupper() in PHP?

背景信息:

我在运行PHP 5.3的LAMP堆栈上使用Zend Framework 2 (ZF2),并且内置的翻译功能开箱即用,它的工作方式完全符合我的预期。

对于那些不熟悉的人,这里有一个例子:

<?php echo $this->translate("Company")?>

就我对它的功能的理解而言,它是一个视图助手,可以用来翻译任何view . php文件上的字符串。它从语言文件()中获取适当的本地化字符串(在本例中为"Company")。使用PoEdit创建的PO文件)。

我有大约250个本地化字符串,我更愿意减少重复,以提高翻译的可维护性,但如果性能会受到影响,我会选择从ZF2中挤出每一点速度。无论UI文本在哪里显示,我都在视图中使用这些翻译函数,如果有更有效的方法,我不想滥用帮助器。

核心问题

以下哪项会产生更好的性能?strtoupper是否比对翻译帮助程序的额外调用更昂贵?

<?php echo $this->translate('Company')?> //# Mixed Case Uses String #1
<?php echo $this->translate('COMPANY')?> //# UPPERCASE Uses String #2
<?php echo strtoupper( $this->translate('Company') ) ?> //# String #1

注意:由于PoEdit将COMPANY和COMPANY存储为两个独立的字符串,因此前两个字符串将需要对翻译助手进行两次不同的调用,并且需要翻译两个不同的字符串。

<标题>结论指出h1> 然我熟悉ZF2和PHP,但我是一个"自学成才"的程序员,所以当涉及到编写高性能的PHP代码时,我不确定要寻找什么,并感谢任何帮助我开始正确的见解。

正如Tim建议的那样,使用CSS在客户端转换文本,而不是在服务器端使事情复杂化。

CSS

.uppercase{ text-transform:uppercase; }
HTML

<span class="uppercase"><?php echo $this->translate('Company')?></span>