Проблем с езици

swlight

Registered
Здравейте. Сайта ми поддържа 2 езика, БГ и ЕН. Имам примерно:

В ЕН файла:
$lang['somthing'] = 'Something';
$lang['somthing1'] = 'Something1';
$lang['somthing2'] = 'Something2';

В БГ файла:
$lang['somthing'] = 'Нещо';
$lang['somthing1'] = 'Нещо1';
$lang['somthing2'] = 'Нещо2';

Направил съм да засича кой език е, и без проблем като напиша echo $lang['something'] ми изпизва something ако съм на ЕН версията, и нещо ако съм на БГ версията. Имам проблем обаче ако искам да ги използвам във функция.

function getblq($sup) {
if($sup == 0) {
return $lang['something'];
} elseif ($sup == 1) {
return $lang['something1'];
}
}

Направя ли го така и задам примерно да изкарва getblq(1) ми дава грешка, че $lang не е декларирано никъде, след това като напиша echo $lang['something1'] си ми излиза. Така и не мога да схвана защо ми дава тази грешка. Може ли малко помощ?
 
За да ползваш глобална променлива във функция, сложи това в началото ѝ:

Код:
global $lang;
 
Като цяло global не е винаги най-удачното решение, защото може да доведе до доста "чуплив" код.

По-скоро може да пускаш като втори параметър масива $lang на функциите, които искаш да го достъпват.

Относно грешката:
http://php.net/manual/bg/language.variables.scope.php
 

Back
Горе