用PHP变量连接数组值
我有一个[key]=>[value]数组,在调用函数时返回字符串 我的问题是,当我用数组值连接一个php变量时,它会给我这个错误 分析错误:语法错误,C:/…中出现意外的“$name”(T_变量) 我的代码:用PHP变量连接数组值,php,arrays,Php,Arrays,我有一个[key]=>[value]数组,在调用函数时返回字符串 我的问题是,当我用数组值连接一个php变量时,它会给我这个错误 分析错误:语法错误,C:/…中出现意外的“$name”(T_变量) 我的代码: function language( $phrase , $name ) { static $language= array ( 'hello' => 'Hello '.$name,
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致命错误:常量表达式中包含无效操作
您可以通过将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];
}
甚至
静态$language代码>就足够了。@u\u mulder谢谢,但我倾向于有点迂腐,更喜欢设置我创建的任何变量。