2017-06-07 18 views
-4

何か不思議だった。私は他の研修生のコードを見ています(誰が何を聞くこともできません)。私は以下を参照してください:HTML内のPHP if文

これは私が自分自身と言うと、実際にはかなり醜いです。私は疑問に思っていた:これは実際には "良い" /それを行うには大丈夫な方法ですか、それとも本当に悪いですか?

+0

あなたは両方の 'if'条件を終了しているわけではなく、' endif; 'がありません。また、PHPを終了する必要がありますか? ''後に構文エラーが発生します。 – Qirel

+0

以下の答えに加えて、 "短いタグ"機能phpの提供を見てください: '<?php echo ...'ではなく '<?=' – arkascha

+0

@Qirelおっと、それを追加するのを忘れました、それは重要ですが、コンセプトです。 –

答えて

1

を試してみてください。ここに私の提案:

<?php 
    $value = isset($something) 
     ? 'bla' 
     : 'bla2' 
    ; 
?> 

<input type="text" 
    name="name" 
    class="form-control" 
    placeholder="name" 
    value="<?php echo $value; ?>"> 

あなたは小枝の使用を開始する場合は、より多くのそれを改善することができます。ご覧のとおり、ここにコードはありません。ただのビューです。あなたがそのビュー変数に送信され、分離されたモデル(データと変数)を維持することができますいくつかの時点で

<input type="text" 
    name="field_name" 
    class="form-control" 
    placeholder="field name" 
    value="{{ field_name }}"> 

ビューを形成するには:

$value = isset($something) 
    ? 'bla' 
    : 'bla2' 
; 

$this->render('path/to/template.html.twig', [ 
    'field_name' => $value, 
]); 
+0

私は思った通りです。私はコードを整理するのに2日のように過ごしていますし、可能な限りそれをきれいにしたいと思っています。あなたがしていること私はあまりにも考えました、ちょうど私が実際に示したコードがどれほど悪いか不思議でした。 –

+0

あなた自身のためにコードを書くたびに、あなた自身のために明確です。ある時点で、他の人のためのコードを書くことは非常に重要です。クリーンなコードを書くように強制するのは私が知っている唯一の方法です。 – sensorario

+0

真実なので、私はコードのほとんどを掃除しています。 –

0

は、私は常に分離し、PHPやHTMLの部分を維持することを好むこの

<input type="text" 
    name="name" 
    class="form-control" 
    placeholder="name" 
    value="<?php echo isset($something) ? 'bla' : (!empty($somethingelse) ? 'bla2' : ''); ?>" > 
+1

コードダンプは良い答えにはなりません。どのようにして*どうやって*彼らの問題を解決するか説明してください。私は読んでみることをお勧めします "[良い答えを書くにはどうすればいいですか?]](http://stackoverflow.com/help/how-to-answer) –

+0

また、私は交換を求めませんでした。私はコードがどれほど悪いかを知りたかっただけです。あなたの例がまだ私を悩ませる、私は変数を使用するのが好きです。 –

0

はこれを試してみてください - まず

<?php 
    if (isset($something)){ 
     $value = 'bla'; 
    } 
    else if(!empty($somethingelse)){ 
     $value = 'bla2'; 
    } 
?> 

<input type="text" name="name" class="form-control" placeholder="name" 
value="<?php echo $value ?>" > 

私は条件に基づいて$valueの値を設定していますし、その値をvalue属性にエコーしています。