根据我的理解,PHP有三个不同的变量范围:
$salt = 'x2x3x5';
$GLOBALS['salt'] = 'x2x3x5';
static $salt = 'x2x3x5';
但是我在一个在线教程中看到教师声明并使用了如下变量:
$config['salt'] = 'x2x3x5';
你能告诉我这是什么变量吗?它的用途是什么?谢谢
答案 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 这是文档
答案 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] ='值'