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


PHP load array values from file and return them as array

我有文件:

英文.php

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

索引.php

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

问题:

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

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

   echo $lang['word'];

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

编辑:我想在文件中分离语言 en.phpde.php, ru.php ...然后将它们加载到索引中.php加载。然后检索它们并回显为$lang['text'].

Ing. Michal Hudak

您的代码是正确的

<?php
function load($file) {
    include $file . '.php';
    return $lang;
}
print_r(load('en'));
您只需

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

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;
        }
    }
?>

索引.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');
?>

未经测试,还为时过早 - 但这应该有效...

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

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

如果将文件包含在函数外部,则将$lang函数global,您可以使用全局关键字访问该文件。

喜欢:

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

global 声明将$lang设置为全局变量:

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