2017-11-11 4 views
0

私はPHPマニュアルを読んでいます。マニュアルページ(URL:Instruction separation)に文章があります。このページのことわざの最初の段落があります:CやPerlと同様にPHPマニュアルで「改行改行」とは何ですか?手動読者とPHP学習者が混乱するだけです。混乱を解消してください。

は、PHPはそれぞれの文の終わりに セミコロンで終端される命令を必要とします。ブロックの終了タグ PHPコードは自動的にセミコロンを意味します。 セミコロンをPHPブロックの最後の行で終了させる必要はありません。 ブロックの終了タグ には、 が存在する場合、直後の改行が含まれます。

私が最後の一つが存在する場合、ブロックの終了タグが直ちに後続 改行が含まれる、すなわち

文章を強調表示以外は、上記の段落で記述されたすべてを理解しました。

この文章は何を意味していますか?この文はどういう意味ですか?

この文は私の心に混乱と疑問を作成しました。

  • ここで、「改行改行」とはどういう意味ですか?
  • 「改行」「改行」、HTMLのエスケープシーケンス文字"\n"、この文脈で同じ<br>の意味ですか?または、他の何か?
  • 「改行改行」とは、ここでは正確に何を意味していますか?ちょうどPHP終了タグ(?>)または単にPHP終了タグ(?>) 後に存在する改行の前に存在改行?

誰かが私の質問にすべて簡単に、明快で理解しやすい言語で回答してください。 この概念を実証している実用的なコード例で説明すると、はるかに良いでしょう。

注:私はalready asked question on stackoverflow about thisを参照しましたが、その回答が満足できない、不完全であいまいです。だから、私の質問に重複のitとしてマークしないでください。ありがとう。

+0

https://stackoverflow.com/a/27102974/661872 –

+0

を参照してください。@LawrenceCherone:その答えはあまり明確ではありません。私が持っているすべての疑念をクリアするわけではありません。私は細かいところが必要であり、私の疑問に対する正確な答えが必要です。ありがとう。 – user2839497

答えて

1

?>があなたのコードのどこかにあって次の行に出力された場合、そこに改行/改行/ \nは出力されません。

foo 
<?php /* whatever */ ?> 
bar 

ウィル出力だから、

foo 
bar 

コード内の3行があるにもかかわらず、出力で唯一の二行があります。あなたはその二行目に?>の後にスペースを追加する場合、foobarの間だけのスペースとラインがあることを は注意。これは、ドキュメントの「すぐ」部分を意味します。

はあなたの特定の質問に答えるために:

まさにここに「改行」とはどういう意味ですか?

これは、?>終了タグの直後に新しい行が始まることを意味します。

「改行」の意味です、「改行」、HTMLのエスケープシーケンス文字"\n"、この文脈で<br>は同じ?または、他の何か?

「改行」は、「トレイル」(後に直接来る)こと改行/改行/ \nある?>終了タグ。だから改行、改行と\nは基本的に同じことを意味します。それはではなく、平均<br>です。

"末尾改行"とは具体的にはどういう意味ですか?閉じているPHPタグの直前にある改行()または終了するPHPタグの直後にある改行(?>)?

改行存在だけ後に終了タグ?>。これは私の例では、の前に改行がありません。の前には、?>があります。

一方が存在する場合、ブロックの終了タグは、直ちに改行が含まれます。終了タグは改行によって直接続く場合、改行をすると考えられている:

私は最後以外は、上記の段落に書かれたすべてのものを理解しては、これは何を意味していることである

すなわち文を強調しました実際にはその終了タグの一部です。 だから私の例では、上記のように解析されます。

  1. foo - > PHP
  2. /* whatever */
  3. ?>\nの処理を開始 - - >
  4. <?php改行>出力 -
  5. \n>出力 "foo" という処理を停止するPHP
  6. bar - >出力 "bar"
+0

このような場合は、マニュアルの記述と矛盾します。最後の文で述べたように、ブロックの終了タグには直後の改行が含まれています(改行/改行/ \ n)。閉じたタグの後に同じ末尾の行(改行/改行/ \ n)が含まれていないと、PHPの終了タグで削除されると答えていますか?>混乱を解消し、それに応じて回答を修正してください。 – user2839497

+0

あなたがリンクしているドキュメントページには、「ブロックの終了タグには直後の改行がある場合はそれが含まれます。」と表示されます。私は "ブロックの終了タグの直後に改行がある場合、その改行は終了タグの一部として扱われます"と読みました。改行は終了タグの '一部'なので、出力には終りません。あなたの混乱をはっきりさせますか? –

関連する問題