0
public function loadConfig($config)
{
    if(is_file(path('config') . $config . '.php'))
    {
        return include_once path('config') . $config . '.php';
    }

}

コントローラーにモデルをロードするための同じ機能があり、すべて問題ありません。しかし、構成ファイルを含めることはできません。パスは正しいです。返却前に入れたら

include_once path('config') . $config . '.php';
print_r($config_array);

配列値を出力します

4

1 に答える 1

1

「_once」を削除する必要があります (このコンテキストでは、2 番目のインクルードを防止することは意味がないため、クラスに対しては行いますが、構成ファイルに対しては行いません)。さらに、インクルードされたファイルに「return」ステートメントを含めるか、インクルード関数の戻り値ではなく、配列を返す必要があります。

public function loadConfig($config)
{
    $filename = path('config') . $config . '.php';
    if (is_readable($filename)) {
        include($filename);
        return $config_array;
    }

    // error handling, i.e., throw an exception ...
}

「return」ステートメントを使用したソリューション:

構成ファイル:

$config_array = array( ... );
return $config_array;

構成ローダー メソッドを持つクラス:

public function loadConfig($config)
{
    $filename = path('config') . $config . '.php';
    if (is_readable($filename)) {
        return include($filename);
    }

    // error handling, i.e., throw an exception ...
}
于 2012-12-01T11:46:34.767 に答える