为什么这段代码不起作用? echo get('option_1')
返回空值。
$settings= array(
'option_1' => 'text'
);
function get($name)
{
if ($name)
return $settings[$name];
}
echo get('option_1');
简单的解决方案是在$options
里面做一个全局变量get()
:
function get($name)
{
global $options;
if ($name)
return $options[$name];
}
如果您不喜欢全局状态,请将其$options
作为参数get()
(但它只是语法糖......):
function get($name, $options)
{
if ($name)
return $options[$name];
}
因为 $options 超出了 get 函数的范围。您要么必须:
$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');