У меня есть массив [key] => [value], который возвращает строку при вызове функции
моя проблема в том, что когда я объединяю переменную php со значением массива, это дает мне эту ошибку
Parse error: syntax error, unexpected '$name' (T_VARIABLE) in C:/...
Мой код:
function language( $phrase , $name ) {
static $language= array (
'hello' => 'Hello '.$name,
'welcome' => 'Welcome '.$name,
'goodbye' => 'Goodbye'.$name,
)
return $language[$phrase];
}
мой ожидаемый результат при звонке
echo language("hello", "name");
вывод: Hello name
есть ли другой способ добиться этого?






Вы не можете инициализировать статические переменные с параметрами, они должны быть константами. Если вы исправите синтаксис исходного кода (отсутствует ;), вы получите ошибку.
PHP Fatal error: Constant expression contains invalid operations in
Вы можете добиться этого, установив static для некоторого фиктивного значения (например, null), а затем используя if для установки значения, когда оно еще не установлено ...
function language( $phrase , $name ) {
static $language= null;
if ( $language == null ) {
$language = array (
'hello' => 'Hello '.$name,
'welcome' => 'Welcome '.$name,
'goodbye' => 'Goodbye'.$name,
);
}
return $language[$phrase];
}
@u_mulder спасибо, но я немного педантичен и предпочитаю устанавливать любую создаваемую мной переменную.
Даже
static $language;хватит.