为什么此代码不起作用? echo get('option_1')
返回null。
$settings= array(
'option_1' => 'text'
);
function get($name)
{
if ($name)
return $settings[$name];
}
echo get('option_1');
答案 0 :(得分:3)
简单的解决方案是使$options
成为get()
中的全局变量:
function get($name)
{
global $options;
if ($name)
return $options[$name];
}
如果您不喜欢全球状态,请将$options
作为get()
的参数(但它只是语法糖......):
function get($name, $options)
{
if ($name)
return $options[$name];
}
答案 1 :(得分:3)
因为$ options超出了get函数的范围。你要么:
答案 2 :(得分:1)
$options
不在get
函数范围内。
面向对象的解决方案:
class Options
{
private static $options = array(
'option_1' => 'text',
);
public static function get($name)
{
return isset(self::$options[$name]) ? self::$options[$name] : null;
}
}
echo Options::get('option_1');