2016-10-25 11 views
0

私は今、ベストプラクティスを学んでおり、誰もが意見を持っています。php配列、foreach、if文のベストプラクティス

私は以下のように書いています。それは動作しますが、エラー出力はありませんが、これはひどい練習であると感じています。これはWordpressテンプレートにあります。

<?php 
$config['social-links'] = [ 
    'facebook' => 'https://www.facebook.com/usernamehere', 
    'instagram' => 'https://www.instagram.com/usernamehere/', 
    'twitter' => null, 
    'youtube' => null 
]; 

と、私はこれはひどいですそれらを開いたままにしているので、テンプレート

<ul class="social-nav inline-blocks"> 
<?php 
    global $config; 
    $dir = get_template_directory_uri(); 
    foreach($config['social-links'] as $key => $value) if($value) 
     echo " 
      <li class='$key inlineBlock'> 
       <a class='animate' target='_blank' href='$value'> 
        <span class='inner'> 
         <img class='injectSvg' data-src='$dir/images/social-icons/icon-$key.svg' alt='$key'> 
        </span> 
       </a> 
      </li> 
     "; 
    ?> 
</ul><!--END Social-nav--> 

に私が感じていますか?私はそれはひどい習慣です

<ul class="socialNav inlineBlocks"> 
<?php 
    global $config; 
    foreach($config['social-links'] as $key => $value) { 
     if($value) { 
      echo ' 
       <li class="'. $key .' inlineBlock"> 
        <a class="animate" target="_blank" href="'. $value .'"> 
         <span class="inner"> 
          <img class="injectSvg" data-src="'. get_template_directory_uri() .'/images/social-icons/icon-'. $key .'.svg" alt="'. $key .'"> 
         </span> 
        </a> 
       </li> 
      '; 
     } 
    } ?> 
</ul><!--END SocialNav--> 
+3

"wordpress"の中のものは悪い習慣です。 – nogad

+1

これは本当です。私はpref laravelそれは質問ではありませんでした> _ < –

+0

laravelはフレームワークですworpressはCMSです – nogad

答えて

2

...私はちょうど下記一緒に行くことになった

foreach($config['social-links'] as $key => $value) { 
    if($value) { 

    } 
} 

...以下の作品を知っているし、正しいですが、私はブラケットを嫌います。これは、一般的にAlternative Syntaxとして知られているされて

<?php foreach($config['social-links'] as $key => $value): ?> 
    <?php if($value): ?> 
     <li class="<?php echo $key; ?>" inlineBlock"> 
      <a class="animate" target="_blank" href="<?php echo $value; ?>"> 
       <span class="inner"> 
        <img class="injectSvg" data-src="<?php echo get_template_directory_uri() .'/images/social-icons/icon-'. $key; ?>.svg" alt="<?php echo $key; ?>"> 
       </span> 
      </a> 
     </li> 
    <?php endif; ?> 
<?php endforeach; ?> 

:あなたは、テンプレートエンジン(すなわち小枝)へのアクセスを持っていない場合は、以下のような速記/テンプレートのPHPを使用すると、あなたが見てしなければならない道であります行く道。