Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP默认网站变量_Php_Variables_Default - Fatal编程技术网

PHP默认网站变量

PHP默认网站变量,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[

我试图找到使用默认变量的最佳方法,并在通过URL传递$GET时覆盖它们。现在,我只有两个,但我会在开发网站时添加更多。有更好的办法吗

我使用来定义变量,并确定变量是否已设置且不为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);

我会用另一种方式

//$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数组文件来查找默认值。