PHPでは、ダブルクォートで囲まれた文字列内で特定のエスケープシーケンスが解釈されます。"\n"はその中でも改行を表すエスケープシーケンスです。しかし、このエスケープシーケンスが改行文字として正しく解釈されるかどうかは、文字列がどのように使用されるかに依存します。
例えば、以下のようなコードを考えてみましょう。
<?php
$message = "Hello\nWorld";
echo $message;
?>
このコードでは、変数$messageに"Hello\nWorld"という文字列が代入され、その後echo文で出力されます。この場合、"\n"は改行文字として解釈され、出力結果は以下のようになります。
Hello
World
しかし、以下のようなコードでは状況が異なります。
<?php
$message = 'Hello\nWorld';
echo $message;
?>
この場合、変数$messageに'Hello\nWorld'という文字列が代入されています。シングルクォートで囲まれた文字列では、エスケープシーケンスは解釈されず、そのまま文字として扱われます。そのため、"\n"は単なる文字列の一部として扱われ、出力結果は以下のようになります。
Hello\nWorld
したがって、PHPにおいて"\n"が改行として機能するかどうかは、文字列の記述方法に依存します。ダブルクォートで囲まれた文字列ではエスケープシーケンスが解釈されるため、改行として機能しますが、シングルクォートで囲まれた文字列ではエスケープシーケンスは解釈されず、そのままの形で出力されます。
以上が、PHPにおける改行文字"\n"と改行の違いについての解説です。