さまざまな部分で次のようなデータ配列をループする必要がある非常に大きなページを作成しています。
$processed = array();
foreach( $data as $program )
{
if( $program['f_enabled'] == 'N' ) continue;
$pid = $program['f_programId'];
if( !array_key_exists($pid, $processed) )
{
/**
* Do things with $pid and $program['f_foobar'], including
* ?>
* <span>HTML with <?=$inlined_vars?></span>
* <?php
*/
$processed[] = $pid;
}
}
これは、WordPress ループを思い起こさせます。すべてのループを 1 つに圧縮して、HTML 出力を変数に格納し、最後にそれらをつなぎ合わせることができることはわかっていますが、コードがそれを囲む HTML に合わせて表示されることを強く望んでいます。
どうすれば外側のすべてを因数分解できますか? たとえそれが次のようなハッキーであっても:
MY_HORRIFYING_MACRO
{
/**
* Do things with $pid and $program['f_foobar'], including
* ?>
* <span>HTML with <?=$inlined_vars?></span>
* <?php
*/
}
ここでは正確さについては気にしません。このデモが機能し、コードがプレゼンテーションで上から下まで読みやすく、ページ上の他の内容と同期している必要があるだけです。できれば PHP 5.3 と互換性があり、デモ サーバーが PHP 5.4 以降を実行するかどうかは定かではありませんが、PHP 5.4 以降のコンストラクトを使用したソリューションが存在する場合は、とにかく共有してください。ありがとうございました。