2016-05-24 4 views
0

私は最近、PHPで作業を始めました。私は、表示したい内容を返す関数を作成しようとしています。つまり、これらのコンテンツの値を各ケースブロックの変数に格納し、その変数の値を最後に返す必要があります。phpの関数で値を返す方法は?

<?php 
    function sidebarContent($id) { 
     switch ($id) { 
      case "21": 
       // how to store these values in a variable 
       <p>Hello ABC.</p> 
       <p class="content-register"><a href="/abc">Abc</a></p> 
       break; 
      case "31": 
       // how to store these values in a variable 
       <p>Hello DEF.</p> 
       <p class="content-register"><a href="/Def">Def</a></p> 
       break; 
      case "41": 
       // how to store these values in a variable    
       echo "Your favorite color is green!"; 
       <p>Hello GHI.</p> 
       <p class="content-register"><a href="/Ghi">Ghi</a></p>   
       break; 
      default: 
       // how to store these values in a variable    
       <p>Hello World.</p> 
     } 

     // how do I return content here? 
    } 

    // call above function to test out 
?> 

コンテンツの値を変数に格納して最後に戻す方法を理解できませんか?

+0

変数をエコーし​​て返します – Thamilan

+0

何も保存する必要はありません。実際にすぐに出力することができますw。その後、実際には '='オペレータによって変数に文字列を割り当てることもできますし、「出力バッファリング」を使用することができます。 – arkascha

+0

実際に私は私が返すことができる機能を作っています理由ですので、別のPHPファイルからこの関数を呼び出す必要があります。 – john

答えて

1

変数に印刷可能なものを割り当てた後、このようにそれらを返す:

<?php 

function sidebarContent($id) { 
    switch ($id) { 
     case "21": 
     $return = '<p>Hello ABC.</p> 
     <p class="content-register"><a href="/abc">Abc</a></p>'; 
     break; 
     case "31": 
     $return = '<p>Hello DEF.</p> 
     <p class="content-register"><a href="/Def">Def</a></p>'; 
     break; 
     case "41": 
     $return = 'Your favorite color is green!"; 
     <p>Hello GHI.</p> 
     <p class="content-register"><a href="/Ghi">Ghi</a></p>'; 
     break; 
     default: 
     $return = '<p>Hello World.</p>'; 
    } 

    return $return; 
} 

echo sidebarContent(31); 

ウィルプリント:

Hello DEF. 

Def 

Demo

1

をあなたは、何かを保存する必要はありませんあなたがそれ以上のフィルタや処理手順を持っていない限り、実際にすぐに出力することができます。そして、実際に=演算子を使って文字列を変数に代入するか、 "出力バッファリング"を使うか、以下に示すようにリテラルマークアップを直接返すだけです。

あなたはペイロードを返すように決定した場合は、その後、私はそのアプローチを提案し、それはまだ読みやすいきれいなHTMLマークアップができます:

<?php 
function sidebarContent($id) { 
    switch ($id) { 
     case 21: 
      return <<<EOT 
<p>Hello ABC.</p> 
<p class="content-register"><a href="/abc">Abc</a></p> 
EOT; 
     case 31: 
      return <<<EOT 
<p>Hello DEF.</p> 
<p class="content-register"><a href="/Def">Def</a></p> 
EOT; 
     case 41: 
      return <<<EOT 
Your favorite color is green! 
<p>Hello GHI.</p> 
<p class="content-register"><a href="/Ghi">Ghi</a></p>   
EOT; 
     default: 
      return <<<EOT 
<p>Hello World.</p> 
EOT; 
    } 
} 

echo sidebarContent(111); 

を欠落閉じPHPタグ(?>を)注意してください。それを使用しないでください。それはより少ないメモリを使用させるためには、できるだけ単純な変数に格納されたデータを保持するために、より良いapprouchだ

0

...巨大な問題を作成し、実際にほとんどのケースでは役立ちません。あなたのスイッチ文のように私は、ほとんどの場合は、同じフォーマットを使用し、それはそれらのそれぞれに特定の日付を分離するために私をリードすることを把握することができます。

<?php 
function sidebarContent($id) { 
    $name = 'World'; 
    $extra = ''; 

    switch ($id) { 
     case "21": 
      $name = 'Abc'; 
      break; 
     case "31": 
      $name = 'Def'; 
      break; 
     case "41": 
      $name = 'Ghi'; 
      $extra = 'Your favorite color is green!'; 
    } 

    return $extra . ' <p>Hello ' . strtoupper($name) . '.</p>' . 
      '<p class="content-register"><a href="/' . $name . '">' . $name . '</a></p>'; 
} 

したがって、上記のコードでは、各ケースの2つの変数に格納されたデータを修正(それらのそれぞれについて、少なくとも1)、その後、私のHTMLコードと格納された変数のデータを返すことを言います。この方法でコードをきれいにしてシンプルに保ちます。

、この関数の呼び出しは可能性のような:

echo sidebarContent(21); // Output the template 
$my_sidebar = sidebarContent(21); // Store the template for later statements 

注:?>:あなたがHTMLコードなしのPHPファイル内でこの機能を維持する場合は、 あなたはPHP終了タグを削除することができます

関連する問題