关于声明PHP变量的问题

时间:2014-05-13 15:09:56

标签: php

根据我的理解,PHP有三个不同的变量范围:

  1. local $salt = 'x2x3x5';
  2. GLOBAL,如$GLOBALS['salt'] = 'x2x3x5';
  3. 静态如static $salt = 'x2x3x5';
  4. 但是我在一个在线教程中看到教师声明并使用了如下变量:

    $config['salt'] = 'x2x3x5';
    
    你能告诉我这是什么变量吗?它的用途是什么?谢谢

6 个答案:

答案 0 :(得分:2)

你有充分的理由在这种情况下感到困惑! PHP有一个非常常用的数据结构叫做数组。在您的示例中,$config是一个非常普通的数组。数组允许您通过更短,更易于输入的名称来处理数据。通常,“数据”称为值,用于解决它的较短名称称为“键”。您可以在此处阅读有关数组的更多信息:

http://ca1.php.net/manual/en/language.types.array.php

您可能感到困惑,因为$GLOBALS特殊数组。 $GLOBALS是特殊的,因为每当你声明一个普通变量时,它都会自动添加键, 如您的示例所示:$salt = 'x2x3x5';

实际上,如果您运行以下代码:

$GLOBALS['salt'] = 'the salt!';
echo $salt;

然后你会回应'盐!'。这是因为无论何时向全局变量添加键/值对,您都可以创建变量。反之亦然;如果运行此代码:

$salt = 'the salt!';
echo $GLOBALS['salt'];
那么你会回应'盐!'。这是因为在定义变量时,您还要在特殊$GLOBALS数组中定义键/值对。

希望这会给你一些见解!

答案 1 :(得分:1)

这是在数组中定义键/值对。 $config是一个数组,而且' salt'是该阵列中的一个关键。在这里查看文档:{​​{3}}

答案 2 :(得分:0)

这是一个数组。变量是类型数组的变量,名称(引用)' $ config'。该指数是“盐”。值是' x2x3x5 这是文档

PHP Array Docs

答案 3 :(得分:0)

在线文档是一个良好的开端:Variable Scope

但这里有一些澄清:

一切都在剧本的全球范围内。

$salt = 'x2x3x5';
echo $GLOBALS['salt']; // outputs 'x2x3x5'

直到你把它放入一个函数

$salt = 'x2x3x5';
function something() {
    $salt = '123';
    return $salt;
}
echo something(); // output '123'
echo $salt; // output 'x2x3x5'

如果将其包装在类属性中,则相同。

class something() {
    public static $salt = '123';
}

$salt = 'x2x3x5';
echo something::$salt; // output '123'
echo $salt; // output 'x2x3x5'

最后$config['salt'] = 'x2x3x5';使$ config成为一个由键索引的值数组。此变量存在于已定义的范围内(如果在全局范围内,或在函数/类/方法中,则为全局变量)。

$config['salt'] = '1234';
$config['pepper'] = 'abcde';
echo $config['salt']; // output 1234
echo $config['pepper']; // output'abcde'

答案 4 :(得分:0)

我认为你把数组与php的变量混淆了。 这里$config是一个已在当前文件或php项目中的其他文件中定义的数组。现在它可能在另一个让你感到困惑的文件中。检查当前文件(包含$config['salt'] = 'x2x3x5';的文件)中包含哪些文件,并在每个文件中查找$config数组变量。我希望你能找到$ config变量被定义为数组的文件。

答案 5 :(得分:-1)

这不是变量,而是Array。

数组名称[key] ='值'