我正在编写一个多语言网站。每个页面的文本都是从MySQL数据库加载的,应该分配给数组或常量以将其插入到Web内容中。
我想知道是否更好,为了节省内存和最佳性能,使用常量或数组来存储文本。即。
foreach ($db_text_object as $t){
$text["$t->key"] = $t->text;
}
或:
foreach ($db_text_object as $t){
define($t->key, $t->text);
}
用作:
echo $text['mytext'];
或:
echo mytext;
任何关于每种方法的优点或缺点的任何其他评论都将受到赞赏。
谢谢。
答案 0 :(得分:2)
我认为这两者都不会对性能产生重大影响,特别是因为瓶颈会每次都从数据库中获取所有数据。如果你真的对它是否有所作为感兴趣:尝试两种方式并测量它。
当你完成这项工作时,使用像gettext这样的原生扩展程序,这是为了这个目的而做的,对二进制翻译文件进行内部缓存,并附带整个生态系统支持翻译工作流程的工具。
答案 1 :(得分:1)
性能差异太琐事或太分钟
我个人使用数组,因为你可以用更简单的方式访问它。
<?php
$db_text_object=[1,2,3,4,5];
$start = microtime(true);
foreach ($db_text_object as $k=>$v){
$text[$k] = $v;
}
echo "Constant Performance: " . (microtime(true) - $start) . "\n";
$start = microtime(true);
foreach ($db_text_object as $k=>$v){
define($k, $v);
}
echo "Array Performance: " . (microtime(true) - $start) . "\n";
<强> OUTPUT:
强>
Constant Performance: 1.9073486328125E-5
Array Performance: 1.3113021850586E-5