【问题标题】:PHP strange shuffle with require_once and array of stringsPHP奇怪的洗牌与require_once和字符串数组
【发布时间】:2012-09-11 00:56:45
【问题描述】:

我遇到了一个关于 PHP 及其 require_once 语言结构的奇怪问题。

我需要名为 EN-en.php 的文件。它包含我网站的英文,我是这样写的:

....
$lang['header']['loginbox']['menu'][1] = "contacts" ;
$lang['header']['loginbox']['menu'][2] = "settings" ;
....

然后我使用此代码将我的文件包含在整个站点中

require_once $langFile ;

我觉得很容易,$langFile is = "/var/www/webstite/langs/EN-en.php"。但奇怪的部分来了。

当我使用时

echo $lang['header']['loginbox']['menu'][1]; 

它打印出类似“Gontacts”之类的东西...我不明白为什么,而且这不是唯一的情况。请有人可以帮我解决这个问题吗?

【问题讨论】:

  • 我该如何解决呢?为什么它将“c”“转换”为“G”?
  • 嗯,编码问题不会将 c 更改为 G。您说它打印“类似”的东西,所以我假设您是一般的。
  • 确保两个文件的编码方式相同
  • 不,抱歉,我的意思是 G
  • 是的,他们是@artragis,我已经检查过两次了

标签: php apache require-once


【解决方案1】:

您可能正在覆盖数组中自己的值。

看这个简单的例子:

$test = "some text";
$test['menu'] = 'extra';
var_dump($test);
// produces: string(9) "eome text"
// the first character - $test[0] - gets overwritten

【讨论】:

  • 您先生成就了我的一天。非常感谢你,上帝保佑你!
  • @Claudio Ludovico Panetta 不客气。如果对您有用,请不要忘记将答案标记为已接受。
猜你喜欢
  • 1970-01-01
  • 2016-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
  • 2019-05-18
  • 1970-01-01
  • 2012-03-04
相关资源
最近更新 更多