上記の変数ではないスレッドのための最高の名前が、それでも...印刷
私は「nav_bar」ブロックに「メインコードブロック」から一つの変数を印刷する必要が
<?php include('inc/nav_bar.php'); ?>
...
<?php
main code block
?>
、 を得ましたこれを行うには良い方法がありますか?
私が今までに見つけた唯一の解決策は、javascriptを使用することです。
上記の変数ではないスレッドのための最高の名前が、それでも...印刷
私は「nav_bar」ブロックに「メインコードブロック」から一つの変数を印刷する必要が
<?php include('inc/nav_bar.php'); ?>
...
<?php
main code block
?>
、 を得ましたこれを行うには良い方法がありますか?
私が今までに見つけた唯一の解決策は、javascriptを使用することです。
あなたが正しく理解していれば、nav_bar.phpはメインコードブロックに変数の値を含めるべきものを出力します。
ob_start();
include('inc/nav_bar.php');
$navBarContent = ob_get_contents();
ob_end_clean();
// main code block: replace some placeholders in $navBarContent with variables content
編集:
次に、あなたが「キャッチ」にnav_bar.phpの出力を試みることができる。しかし、私は他の人と同意します。よりよい解決策は、コード設計を変更し、クラス/機能を使用することです。
コードブロックを並べ替えたり、出力バッファリングを使用するなど、さまざまな方法があります。
「nav_bar.php」はどのコンテンツもエコーしますか?これを試してみてください:
{nav_bar.php}
...
echo "some text %VAR% some text";
...
{main.php}
ob_start();
include 'inc/nav_bar.php';
$content = ob_get_contents();
ob_end_clean();
$var = doSomeCalc();
$content = str_replace('%VAR%', $var, $content);
echo $content;
ORあなたがこの方法を使用することがあります。
{main.php}
$main_var = doSomeCalc();
...
include 'inc/nav_bar.php';
...
echo "something else";
{nav_bar.php}
...
echo "some text $main_var some text"; // use $main_var defined earlier
...
私はこのパターンのために行くだろう:
<?php
// main code block
include('inc/nav_bar.php');
しかし、あなたはあなた自身でステップを前方に移動する場合スキルを向上させ、あなたの人生をより楽にして、テンプレートを使用します(これは、逆の代わりに内側からアプローチします)。
既存のテンプレートエンジンを使用する場合は、TwigまたはSmartyを参照してください。また、主に純粋にPHPベースのテンプレート(他のエンジンも使用できます)とSymfony(主にTwigを使用する)を使用するZend Frameworkを強くお勧めします。
についてあなたはクラスでnav_barのコンテンツを持っている、とあなたはそれを呼び出す方法は? like navBar($ mainBlockVariable) –
上記のブロックの下のブロックの変数をPHPで出力したいのですが?それはちょっとやりにくいと思いますか? – snaderss
あなたにとって面白いかもしれないhttp://twig.sensiolabs.org/ – KingCrunch