왜이 코드가 작동하지 않습니까?echo get('option_1')
은 null을 반환합니다.배열에 문제가 있습니까?
$settings= array(
'option_1' => 'text'
);
function get($name)
{
if ($name)
return $settings[$name];
}
echo get('option_1');
왜이 코드가 작동하지 않습니까?echo get('option_1')
은 null을 반환합니다.배열에 문제가 있습니까?
$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
합니다
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');
$ options는 get 함수의 범위를 벗어납니다. 당신이 중 하나는해야한다 : 함수의 매개 변수로 $ 이름과 함께
의 글로벌 언어가 다른 언어의 전역 언어와 같지 않을 것이라는 점을 명심하십시오. 나는 왜 PHP의 글로벌이 '아주 나쁜 생각'인지를 깨닫게 될 것이다. – anubhava
설명서를 읽으십시오 : http://php.net/manual/en/language.variables.scope.php (두 번째 예). –
하하, 감사합니다. 범위를 잊어 버렸습니다. – Jasper