如何获取数组变量值?

时间:2011-01-02 18:47:19

标签: php arrays function

$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 ???

4 个答案:

答案 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