$lang['profil_basic_medeni'] = array(
1 => 'Bekâr',
2 => 'Evli',
3 => 'Nişanlı',
4 => 'İlişkide',
5 => 'Ayrılmış',
6 => 'Boşanmış'
);
$lang['profil_basic_sac'] = array(
1 => 'Normal',
2 => 'Kısa',
3 => 'Orta',
4 => 'Uzun',
5 => 'Fönlü',
6 => 'Saçsız (Dazlak)',
7 => 'Karışık/Dağınık',
8 => 'Her Zaman Bol Jöleli :)'
);
function sGetVAL($item,$valno) {
$sonuc = $lang[$item][$valno];
return $sonuc;
}
$tempVAL1 = sGetVAL('profil_basic_medeni','3'); // return null
//or
$tempVAL2 = sGetVAL('profil_basic_sac','7'); // return null
$tempVAL1
或$tempVAL2
始终返回null
。为什么?如何修复函数sGetVAL ???
答案 0 :(得分:3)
因为您正在使用像数字索引这样的文字索引?
因为数组$lang
在函数中不可见?
试试这个:
$tempVAL1 = sGetVAL('profil_basic_medeni',3); // return null
//or
$tempVAL2 = sGetVAL('profil_basic_sac',7); // return null
和此:
function sGetVAL($item,$valno) {
global $lang;
$sonuc = $lang[$item][$valno];
return $sonuc;
}
答案 1 :(得分:2)
你的数组是全局的,但你的函数使用它的本地版本(它是不同的和未初始化的)。
首先在函数中写global $lang
,或使用$GLOBALS['lang']
访问数组。
答案 2 :(得分:1)
$lang
是一个全局变量,sGetVal
不可见。函数通常只能看到自己定义的变量(以及$_POST
和$_GET
等超级全局。)
您可以使用
function sGetVAL($item,$valno) {
global $lang;
$sonuc = $lang[$item][$valno];
return $sonuc;
}
但最好不要使用全局变量。
答案 3 :(得分:0)
sGetVal
函数无法看到数组$lang
,因为您没有使用global
关键字将其纳入范围。阅读here。