foreach循环如何在全局数组中返回键和值?

时间:2015-05-16 16:38:38

标签: php arrays oop multidimensional-array

<?php
include 'global.php';
class Config {
    public static function login($path=null){
        if($path){
            $config=$GLOBALS['config'];
            $path=explode('/',$path);

            foreach($path as $bit ) {

                if($config[$bit]){
                    $config=$config[$bit];
                }
            }
            return $config;
        }

        return false;
    }
}

,全局数组是

<?php
session_start();

$GLOBALS['config']=array(
    'mysql'=>array(
        'host'=>'localhost',
        'username'=>'root',
        'password'=>'',
    ),

    'session'=>array(
        'username'=>'user',
        'user_logged'=>'logged_in'
    ),

    'status'=>array(
        'login'=>'true',
    )
);
spl_autoload_register( function($class){
    include 'classes/' .$class. '.php';
});

我需要访问全局数组中的元素。但我不明白他们是如何做到的......有人可以帮助我吗?如何为Web应用程序设计选择设计模式?

1 个答案:

答案 0 :(得分:0)

PHP有一个名为$ GLOBALS的全局值数组;这&#34;超全球&#34;变量随处可用,无需声明。代码引用$ GLOBALS [&#39; config&#39;]初始化并读取此值。

http://php.net/manual/en/reserved.variables.globals.php

在非全局上下文(即函数内)中使用$ GLOBALS [&#39; config&#39;]的替代方法是使用global关键字将其拉入范围:

public static function login($path=null){
    global $config;

    if($path){    
        $path=explode('/',$path);
        foreach($path as $bit ) {    
            if($config[$bit]){    
                $config=$config[$bit];
            }   
        }
        return $config;
    }

    return false;
}