Как получить значение переменной массива? - PullRequest
1 голос
/ 02 января 2011
$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 ]

3 голосов
/ 02 января 2011

Потому что вы используете буквенные индексы, такие как числовые индексы?Потому что массив $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;
} 
2 голосов
/ 02 января 2011

ваш массив является глобальным, но ваша функция использует его локальную версию (отличающуюся и неинициализированную).

либо сначала введите global $lang в вашей функции, либо используйте $GLOBALS['lang'] для доступа к массиву.

1 голос
/ 02 января 2011

$lang - глобальная переменная, которая невидима для sGetVal. Функции обычно могут видеть только те переменные, которые они определяют сами (и суперглобальные переменные типа $_POST и $_GET).

Вы можете использовать

function sGetVAL($item,$valno) {
  global $lang;
  $sonuc = $lang[$item][$valno];
  return $sonuc;
}

но было бы лучше вообще обойтись без глобальных переменных.

0 голосов
/ 03 января 2011

Функция sGetVal не может видеть массив $lang, поскольку вы не использовали ключевое слово global, чтобы ввести его в область видимости.Читайте здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...