2017-12-11 18 views
0

まず、このコードはサンプルであり、元のコードが大きすぎてここに投稿できないようにするためにリメイクしますが、この例に似たロジックと機能があります。コール前のエコー変数

今私があまりにもh1タグにこのタイトルを使用したいが、あなたは、この関数の前にレンダリングされたH1タグを見るように、と私は移動することができないんだけど、私はgetTitle()と呼ばれる機能でダイナミックなタイトルを作り、それが#side-barに表示#side-barの後にh1タグ。今私は、この関数を呼び出す前に、私はどのようにecho関数から生成された変数を知りたいですか?

PHP:

<?php 
function getTitle(){ 
global $title; 
    // some code to generate dynamic title 
    $title = "example title"; 

    echo $sample = "123"; 
    return $title; 
    // other code 
} 
?> 

HTML:

echo <h1><?=$title;?></h1>; 
<div id="side-bar"><?php getTitle(); ?></div> <!-- call --> 

私は機能getTitle();を呼び出した後$titleを移動した場合、それは正常に動作しますが、私はこれを呼び出す前に$titleをエコーする必要があります知っています関数。 可能でしょうか?またはこれを行うための考え方、または論理?

また私はjavascriptかなどとH1にサイドバーからタイトルのクローンを作成することができます知っている..しかし、これはh1タグであり、クライアント側のページのロードの後に​​それを埋めることはできません。

+1

あなたは配列を作成してそれを返し、エコーしたいものをエコーすることができます。 '$ arr ['title'] ="例題のタイトル "; $ arr ['sample'] = 'sample'; ' – urfusion

+5

しないでください。あなたのロジックをまっすぐに伸ばしてください。 **最初にデータを収集します。次に、データをビューに配置します。** 2つのステージをインターリーブするだけで、管理が難しくなり、この種の結び目に身を縛ることになります。 – Quentin

+1

PHPの例では、 'return'を押すとその関数を終了します。 'return'の後には何も実行されません。しかし、@クエンティンは言ったように...そのような出力をミックスしないようにしてください。 – IncredibleHat

答えて

0

PHP:

<?php 
function getTitle(){ 
    // some code to generate dynamic title 
    return ['title' => 'Example title', 'sample' => '123']; 
} 
?> 

HTML:

$response=getTitle(); 
echo <h1><?=$response["sample"];?></h1>; 
<div id="side-bar"><?php $response["title"]; ?></div> <!-- call --> 
+2

なぜ配列を返さないのですか? –

+0

それはより効率的な方法です。最近APIの開発を進めていて、いつもJSONについて考えるようになった。xD – Manikiran

+0

@Manikiranは 'JSON'を作成しても、' $ a = array(); 'の代わりに' $ a = []; ' – Derek

0

あなたのアプローチは間違っています。命令はreturn文の後には実行されません。

PHP関数

<?php 
    function getTitle(){ 
     $title = /*generate dynamic title*/; 
     return $title; 
    } 
?> 

HTML

<?php $generatedTitle = getTitle(); ?> 
<h1><?php echo $generatedTitle; ?></h1> 
<div id="side-bar"><?php echo $generatedTitle; ?></div>