Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/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 - Fatal编程技术网

关于声明PHP变量的问题

关于声明PHP变量的问题,php,Php,据我所知,PHP有三种不同的变量作用域: 本地类$salt='x2x3x5' 全局类$GLOBALS['salt']='x2x3x5' 静态类static$salt='x2x3x5' 但我在一个在线教程中看到,讲师声明并使用了如下变量: $config['salt'] = 'x2x3x5'; 你能告诉我这是什么类型的变量吗?它的用途是什么?谢谢这不是变量,这是数组 数组名称[键]=“值”这是在数组中定义键/值对$config是一个数组,“salt”是该数组中的一个键。查看此处的文档:这是一个数

据我所知,PHP有三种不同的变量作用域:

  • 本地类
    $salt='x2x3x5'
  • 全局类
    $GLOBALS['salt']='x2x3x5'
  • 静态类
    static$salt='x2x3x5'
  • 但我在一个在线教程中看到,讲师声明并使用了如下变量:

    $config['salt'] = 'x2x3x5';
    

    你能告诉我这是什么类型的变量吗?它的用途是什么?谢谢

    这不是变量,这是数组


    数组名称[键]=“值”

    这是在数组中定义键/值对
    $config
    是一个数组,“salt”是该数组中的一个键。查看此处的文档:

    这是一个数组。该变量为数组类型,名称(引用)“$config”。索引为“salt”,值为“x2x3x5” 这是文件


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

    但这里有一些澄清:

    脚本的所有内容都在全局范围内

    $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成为一个由键索引的值数组。此变量存在于定义的范围内(如果在全局范围内,或在函数/类/方法内,则为全局变量)


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

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

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

    $GLOBALS['salt'] = 'the salt!';
    echo $salt;
    
    然后你会回应“盐!”。这是因为,无论何时向globals添加键/值对,都会创建一个变量。反之亦然;如果运行此代码:

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


    希望这能给你一些启示

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

    它是一个数组。变量名为
    $config
    ,它有一个数组键
    salt
    ,它等于
    'x2x3x5'
    。这与变量范围无关。
    $salt = 'the salt!';
    echo $GLOBALS['salt'];