2016-09-15 3 views
-4

ここに、私が意味するものを説明する写真の例があります。PHPが置かれる方法に応じて、HTMLが異なって見える原因は何ですか?

編集:

echo ' 
    <input type="text" name="city" class="" placeholder="City" disabled="true"/> 
        '.displayStateSelect('state', null).' 
    <input type="text" name="zip" class="" placeholder="Zip" disabled="true" />'; 

OR

echo '<input type="text" name="city" class="" placeholder="City" disabled="true" />'; 

displayStateSelect('state', null); 

echo '<input type="text" name="zip" class="" placeholder="Zip" disabled="true" /> 
     </div> 

echo文の間に関数を呼び出す

Code - inline Photo - inline

は離れてそれを破る:

Code - Broken Apart Photo - Broken Apart

- これらは本質的には同じではありませんか?表示順序を変更する原因は何ですか?関数レスポンスを最初に実行してから残りをエコーし​​ますか?

質問:インラインエコー機能を呼び出すのは悪い習慣ですか? = \

+1

function displayStateSelect($state,$something){ echo '<select><option>1</option><option>2</option></select>'; } 

すなわち

は、あなたも、コードの完全な行を表示しないとき、特にない、質問にコードを追加だけでなく、作物のスクリーンショットを行ってください。..また、 'displayStateSelect'は何をしますか?私はそれが値を返すと仮定します。その場合、いいえ、彼らは決して同じではありません。最初のconcatsは、定義されている文字列への戻り、2番目の行は...何もしません。それが 'echo displayStateSelect(...)'だった場合、それは別の問題です。 –

+0

写真に記載されていないコードは、この質問とは全く関係ありません。それは私が何を求めているかを正確に示しています。関数呼び出しがどこで行われ、なぜそれが違いを生むのですか?また、結果のコードのスクリーンショットも表示されます。私は妥当性を見ません。両方の写真がちょうど異なって配置された同じコードのものであることは明らかです。 – Imperialized

+0

@Imperialized私は同意しません、あなたのコードをテキストとして投稿してください。 – cmorrissey

答えて

1

あなたの関数displayStateSelect('state', null)は、実際に要素をechoまたは他の方法で出力バッファに書き込みます。returnを使用する代わりに、最初の方法を使用できます。

function displayStateSelect($state,$something){ 
    return '<select><option>1</option><option>2</option></select>'; 
} 
2

最初に、コードのスクリーンショットではなく、コードを実際に投稿する必要があります。スクリーンショットは、あなたの問題の完全な文脈を取得し、答えについてのより多くの推測につなげることを非常に困難にします。それは言われている...

"echo"または "print"がecho文の中に出力される関数を挿入しているので、そのように表示されます。 displayStateSelect()への関数呼び出しをインライン化しないで、必要なときにコンテンツを生成するか、または出力する代わりに出力することが必要です。

+0

これは誰もが言わなければならないことです。わかった。私はゲットからそれを考えました。人々はちょうど敬意を持って学ぶ必要があります。ただ聞いてください。いつもそんなに失礼する必要はありません。 – Imperialized

関連する問題