PHP默认网站变量

时间:2011-11-21 21:39:06

标签: php variables default

我正在尝试使用最佳方式来使用默认变量,并在通过URL传递$ _GET时覆盖它们。现在,我只有两个,但我会在开发网站时添加更多。还有更好的方法吗?

我正在使用define来定义变量,并使用isset来确定变量是否已设置且不是NULL。

define("THEME", "atom");
define("VERSION", "1.00");

if(isset($_GET["theme"]))
{
    $theme = $_GET["theme"];
} else
{
    $theme = THEME;
}
if(isset($_GET["version"]))
{
    $version = $_GET["version"];
} else
{
    $version = VERSION;
}

更新 我决定以下几点。我将我的网站设置存储在settings.php中:

$settings = array();
$settings['theme'] = 'default';

然后我包含该文件,使用三元运算符,然后定义变量:

include_once('settings.php');

$theme = (isset($_GET["theme"])) ? $_GET["theme"] : $settings['theme'];
define("THEME", $theme);

4 个答案:

答案 0 :(得分:3)

您可以使用三元运算符来减少输入。

$theme = (isset($_GET["theme"])) ? $_GET["theme"] : THEME;
$version= (isset($_GET["version"])) ? $_GET["version"] : VERSION;

答案 1 :(得分:2)

我会这样做。

//$theme = config('default.theme');
//$version = config('default.theme_version');
// or
$theme = 'default';
$version = '1.00';

if(isset($_GET["theme"]) AND is_valid_theme($_GET['theme']))
{
    $theme = $_GET["theme"];
}

if(isset($_GET["version"]) AND is_valid_version($_GET['version']))
{
    $version = $_GET["version"];
}

define("THEME", $theme);
define("VERSION", $version);

答案 2 :(得分:1)

您可以随时执行以下操作:

$defaults = array(
    "theme" => "atom",
    "version" => "1.00"
);

$parameters = array_merge($defaults, $_GET);
extract($parameters);

我首先为默认值设置关联数组。然后我使用array_merge将其与$_GET数组合并。由于我提到$_GET作为第二个参数,它将覆盖值(如果它们存在)。这样,您就可以获得一个关联的参数数组。如果要将它们用作局部变量,可以使用extract

答案 3 :(得分:0)

为了清楚起见,我会在这里使用switch或三元语句:

define("THEME", "atom");
define("VERSION", "1.00");

isset($_GET['theme'])   ? $theme = $_GET['theme']   : $theme = THEME;
isset($_GET['version']) ? $theme = $_GET['version'] : $theme = VERSION;

每当我知道我可能稍后扩展这样的逻辑时,我通常采用三元方法。保持一切可读性。