PHP默认网站变量
我试图找到使用默认变量的最佳方法,并在通过URL传递$GET时覆盖它们。现在,我只有两个,但我会在开发网站时添加更多。有更好的办法吗 我使用来定义变量,并确定变量是否已设置且不为NULLPHP默认网站变量,php,variables,default,Php,Variables,Default,我试图找到使用默认变量的最佳方法,并在通过URL传递$GET时覆盖它们。现在,我只有两个,但我会在开发网站时添加更多。有更好的办法吗 我使用来定义变量,并确定变量是否已设置且不为NULL define("THEME", "atom"); define("VERSION", "1.00"); if(isset($_GET["theme"])) { $theme = $_GET["theme"]; } else { $theme = THEME; } if(isset($_GET[
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);
我会用另一种方式
//$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);
我会用另一种方式
//$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);
您可以使用三元运算符来减少键入
$theme = (isset($_GET["theme"])) ? $_GET["theme"] : THEME;
$version= (isset($_GET["version"])) ? $_GET["version"] : VERSION;
您可以使用三元运算符来减少键入
$theme = (isset($_GET["theme"])) ? $_GET["theme"] : THEME;
$version= (isset($_GET["version"])) ? $_GET["version"] : VERSION;
你可以一直这样做:
$defaults = array(
"theme" => "atom",
"version" => "1.00"
);
$parameters = array_merge($defaults, $_GET);
extract($parameters);
我首先为默认值设置一个关联数组。然后,我使用将其与
$\u GET
数组合并。因为我提到了$\u GET
作为第二个参数,它将覆盖存在的值。这样,就得到了一个参数的关联数组。如果要将它们用作局部变量,可以使用。您可以始终执行以下操作:
$defaults = array(
"theme" => "atom",
"version" => "1.00"
);
$parameters = array_merge($defaults, $_GET);
extract($parameters);
我首先为默认值设置一个关联数组。然后,我使用将其与
$\u GET
数组合并。因为我提到了$\u GET
作为第二个参数,它将覆盖存在的值。这样,就得到了一个参数的关联数组。如果要将它们用作局部变量,可以使用。为了清晰起见,我会在此处使用开关或三元语句:
define("THEME", "atom");
define("VERSION", "1.00");
isset($_GET['theme']) ? $theme = $_GET['theme'] : $theme = THEME;
isset($_GET['version']) ? $theme = $_GET['version'] : $theme = VERSION;
每当我知道以后可能会像这样扩展一点逻辑时,我通常采用三元方法。使所有内容更具可读性。为了清晰起见,我会在这里使用开关或三元语句:
define("THEME", "atom");
define("VERSION", "1.00");
isset($_GET['theme']) ? $theme = $_GET['theme'] : $theme = THEME;
isset($_GET['version']) ? $theme = $_GET['version'] : $theme = VERSION;
每当我知道以后可能会像这样扩展一点逻辑时,我通常采用三元方法。使所有内容更具可读性。我更喜欢使用isset()!空($\u GET['theme'])
这是不安全的,您不仅应该检查它是否已设置,还必须确保它是有效的,这样黑客就不会插入不好的内容。当您使用它时,请确保它也是字符串/int!我更喜欢使用isset()&&!空($\u GET['theme'])
这是不安全的,您不仅应该检查它是否已设置,还必须确保它是有效的,这样黑客就不会插入不好的内容。当您使用它时,请确保它也是字符串/int!您能详细介绍一下$variable=config('default.variable');?我认为这看起来是存储站点特定变量的好方法。这是自定义ini文件吗?THX@w0lf42,大多数框架都有某种配置加载。config()可以加载一个JSON/XML/INI/YAML/PHP数组文件来查找默认值。是否可以扩展$variable=config('default.variable');?我认为这看起来是存储站点特定变量的好方法。这是自定义ini文件吗?THX@w0lf42,大多数框架都有某种配置加载。config()可以加载一个JSON/XML/INI/YAML/PHP数组文件来查找默认值。