PHP奇怪的洗牌与require_once和字符串数组
Posted
技术标签:
【中文标题】PHP奇怪的洗牌与require_once和字符串数组【英文标题】:PHP strange shuffle with require_once and array of strings 【发布时间】: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,我已经检查过两次了 【参考方案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 不客气。如果对您有用,请不要忘记将答案标记为已接受。以上是关于PHP奇怪的洗牌与require_once和字符串数组的主要内容,如果未能解决你的问题,请参考以下文章
PHP/HTML/CSS:IE 在使用 require_once() 时表现得很奇怪