PHP从文件加载数组值并将它们作为数组返回

时间:2013-11-12 08:39:07

标签: php arrays include

我有档案:

en.php

<?php
$lang['word'] = 'word';
$lang['text'] = 'text';

的index.php

<?php
function load($file) {
    include $file . '.php';
    echo $lang['word'];
    echo $lang['text'];
}

load('en');

问题:

如何从 en.php 获取数组值,并使用 load() 将它们作为数组返回

如何处理文件以返回load()中的每个数组值,以便在index.php中使用它,如下所示:

   echo $lang['word'];

我知道在全局范围内包含函数视图文件但变量在本地范围内。我正在寻找“返回阵列”解决方案。

编辑: 我想在文件 en.php de.php ru.php 中分隔语句...然后将它们加载到index.php中有负载。然后检索它们并以$lang['text']回显。

5 个答案:

答案 0 :(得分:2)

了Ing。 Michal Hudak

您的代码是正确的

<?php
function load($file) {
    include $file . '.php';
    return $lang;
}

print_r(load('en'));

答案 1 :(得分:1)

您只需在en.php文件中执行return $lang,然后将其分配给加载函数中的变量:$load = include $file . '.php';

答案 2 :(得分:0)

en.php(或lang_en.php)

<?php
    class lang_en {
        var $lang = array();
        public function __construct() {
            $this->lang['word'] = 'word';
            $this->lang['text'] = 'text';
        }
        public function get_lang() {
            return $this->lang;
        }
    }
?>

的index.php

<?php
    function load($file) {
        include $file . '.php';
        $class_name     = 'lang_' . $file;
        $lang_instance  = new $class_name();
        $get_lang       = $lang_instance->get_lang();
        echo $get_lang['word'];
        echo $get_lang['text'];
    }
    load('en');
?>

未经测试&amp;它还早 - 但这应该有用......

答案 3 :(得分:0)

您在函数中包含文件en.php,因此$lang是函数的本地文件,您可以直接使用它们。

function load($file) {
    include $file . '.php';
    echo $lang['word'];
    echo $lang['text'];
}

如果您在函数外部包含该文件,那么该函数的$lang将为global,您可以使用global关键字来访问它。

像:

include 'en.php';
function load() {
    global $lang;
    echo '<br>'.$lang['word'];
    echo '<br>'.$lang['text'];
}

答案 4 :(得分:0)

您可以使用global声明使$lang成为全局变量:

function load($file) {
    global $lang;
    include $file . '.php';
    echo $lang['word'];
    echo $lang['text'];
}