1

新しいphpファイルに引数として配列を渡そうとしています。

$data=array('arr1'=>'haha', 'arr2'=>'wawa');

 function load($view='index',$data=false){

            require $view.'.php';

        if (isset($data)){
            //I want to pass $data(array) to index.php so I can use the array 
            //in index.php page.
            //not sure what to do here.
        }

    }

load('index', $data);

index.php

<html>
      echo '$arr1 ='.$arr1;
      echo '$arr2 ='.$arr2;
</html>

これは可能ですか?助けてくれてありがとう。

4

3 に答える 3

3

すでにその配列にアクセスできます。

 function load($view='index',$data=false){

     require $view.'.php';

 }

index.php で次のことができます。

<p>
   <?=$data['value'];?>
</p>

あなたはあなたの機能の範囲内にいるからです。

多くのテンプレート エンジンが存在することに注意してください。そのうちの 1 つを使用することを強くお勧めします。

于 2012-05-15T18:03:29.920 に答える
2

「require」ステートメントの前に...これを行うことができます:

foreach($data as $name => $value) {
    $$name = $value;
}
于 2012-05-15T18:04:52.207 に答える
2

ファイルを含めることの実際の意味について混乱していると思います。ファイルをインクルードするということは、インクルードされたファイルを追加することを意味するため、リダイレクトなどではありません。したがって、変数が定義されているファイルに含めると、「ビュー」ファイルで変数を使用できるようになります。

ただし、php を使用してそのように解析できます。ロジックとビューを分離しておくことは素晴らしいことですが、テンプレート エンジンを試してみることをお勧めします。 、キャッシングなど

次のエンジンをお勧めします。

http://twig.sensiolabs.org/ Twig、それは素晴らしく、フレームワーク Symfony で使用されています。インストールと使用は簡単です。

Twig の代わりに Smarty があります。これも優れたテンプレート エンジンであり、多くのプロジェクトで使用されています。http://www.smarty.net/

両方を見て、どちらが一番好きかを決めてください。しかし、興味がなく、できれば独自の「テンプレート エンジン」が必要な場合は、まったく問題ありません。テスト済みで適切に記述されたコードがある場合に、車輪を再発明する理由を述べているだけです。

于 2012-05-15T18:15:39.473 に答える