0

我有文件:

en.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() 中返回每个数组值以在 index.php 中使用它,如下所示:

   echo $lang['word'];

我知道在全局范围内包含函数视图文件,但变量在本地范围内。在那里,我正在寻找“以数组形式返回”解决方案。

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

4

5 回答 5

2

英格。米哈尔·胡达克

你的代码是正确的

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

print_r(load('en'));
于 2013-11-12T08:57:46.827 回答
1

您可以简单地return $lang在 en.php 文件中执行 a ,然后将其分配给 load 函数中的变量:$load = include $file . '.php';

于 2013-11-12T08:43:41.373 回答
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;
        }
    }
?>

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

未经测试,现在还早 - 但这应该有效......

于 2013-11-12T08:49:10.083 回答
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'];
}
于 2013-11-12T08:49:32.970 回答
0

您可以使用global声明来创建$lang一个全局变量:

function load($file) {
    global $lang;
    include $file . '.php';
    echo $lang['word'];
    echo $lang['text'];
}
于 2013-11-12T08:50:06.303 回答