hoge.php
PHP
1$row = (りんご, みかん, ぶどう, さくらんぼ); 2 3foreach($row as $hoge){ 4 echo $hoge; 5} 6
上記を、ターミナルでphp hoge.php
とすると、ターミナルに
りんごみかんぶどうさくらんぼ
のように改行されずに表示されてしまいます。<br>を付けてみましたがだめでした。
初歩的な質問ですが、ご教授頂けますと幸いです。mm
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
- 文字列は
"
または'
で括りましょう.
前者には改行エスケープシーケンス\n
を展開する機能があります. - PHP5.4以降では
array()
より[]
のほうがベターです.
JavaScriptやRubyの配列記法と同じでシンプルに書けます.
php
1<?php 2 3$row = ['りんご', 'みかん', 'ぶどう', 'さくらんぼ']; 4 5// お好きな書き方でどうぞ 6foreach ($row as $col) { 7 echo "$col\n"; 8 echo "{$col}\n"; 9 echo $col . "\n"; 10 echo $col . PHP_EOL; 11}
なお,ターミナルの標準出力の代わりにエラー出力に吐き出したい場合は,
echo $var;
の代わりに fwrite(STDERR, $var);
としてください.
投稿2016/03/06 18:26
編集2016/03/06 18:31総合スコア5223
0
他の人が回答してくれていますので、私は直接の回答ではなく、背景について書きます。
PHP に限らずプログラミング言語などにおいて "\n"
が表すのは LF (Line Feed) という文字コードで、次の行に移る、という意味です。他に "\r"
で表される CR (Carriage Return) があって、これは行の先頭に戻る、という意味です。昔、タイプライターという機械があったのはご存じですか。今のキーボードのようになっているキーを叩くと紙にバシンッとその文字が打ち込まれて一文字分、紙が送られます。行の終わりのほうになったら新たな行から書き始めるために紙を送るわけですが、そのときには、次の行に移る、という縦方向の動きと、印字位置を先頭に戻す、という横方向の動きが行われるわけです。(youtube とかで「タイプライター キャリッジ 動作」とかで検索すると実物の動きを見られる動画とか観られると思います。)
で、コンピュータの世界で「改行」をどう表現しようか、というところで、きっちり縦の動き、横の動き両方を意識しているのが Windows とかで、改行コードは CR LF の 2 バイトになっています。(昔の、かな) Mac OS とかは CR だけで改行を表してきたし、Unix 系は伝統的に LF だけで改行を表してきました。
なもんで、端末において "\n"
を出力したときに改行されるかどうか、は実行環境依存かもしれません。まあ、たぶん、お使いの環境では "\n"
を出力すれば改行されるでしょう。
それさておき、PHP は 「PHP: Hypertext Preprocessor」という名前のとおり、元々は Hypertext 出力、ざっくり言えば html を吐き出すことに特化した言語で、<?php
タグに挟まれた部分以外はスクリプトに書いた文字がそのまま表示される、という特徴があります(次の拙稿 include と require_once の使いわけ - Qiitaも参考になるのではないかと思います)。通常はこれを HTML テンプレートのように使うわけですが、ターミナル上でも <?php
タグの外ではコード上の改行も「そのまま」表示されるので、改行コードを明示的に出力しない、次のような書き方も出来ます。
php
1<?php 2$row = explode(',', 'りんご,みかん,ぶどう,さくらんぼ'); 3?> 4<?php foreach ($row as $hoge) : ?> 5<?=$hoge?> 6 7<?php endforeach; ?>
"<br />"
をつけると改行される、というのはブラウザで html として表示したときの話です。"break" の意味ですね。ターミナル上で echo '<b>りんご</b>';
とやると強調表示されずにそのまま "<b>りんご</b>" と表示されるのに対し、ブラウザで html として表示している場合にはボールド体で "りんご" と表示される、というのと同じです。
投稿2016/03/06 23:02
総合スコア2468
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/07 03:17