質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

260閲覧

PHP 改行について

uppq

総合スコア13

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/06/13 02:58

echoで出力しているのですが、改行されてしまいます。
なぜでしょうか?

よろしくお願いいたします。

<?php $input_num = (int)fgets(STDIN); $variable1 = 0; $variable2 = 0; for($i = 0; $i < $input_num; $i++){ $input_line = fgets(STDIN); $input_array = explode(" ", $input_line); $order = $input_array[0]; if($order == 'SET'){ $variable_select = $input_array[1]; $calculation = $input_array[2]; if($variable_select == 1){ $variable1 = $calculation; }elseif($variable_select == 2){ $variable2 = $calculation; } }else{ $calculation = $input_array[1]; if($order == 'ADD'){ $variable2 = $variable1 + $calculation; }elseif($order == 'SUB'){ $variable2 = $variable1 - $calculation; } } } echo $variable1; echo $variable2;

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/06/13 03:07

また何を実現しようとしている機能なのか、どういう操作で動作させているのか、PHPのバージョンもあわせて追記してください。
退会済みユーザー

退会済みユーザー

2019/06/13 03:16

コピペして実行したけど、改行されなかったよ? コマンド・プロンプト上でphpにファイル名を与えての実行。
退会済みユーザー

退会済みユーザー

2019/06/13 03:27

どういう入力を与えたらどういう出力が期待されるのか、という仕様面が不明瞭なのも混乱するね。
m.ts10806

2019/06/13 03:37

質問は編集できるので、「後から見たときにどういう質問か分かりやすくするためにも」 調整いただければと思います。
uppq

2019/06/13 07:22

mts10806さん わかりました。また調整しておきます。
guest

回答2

0

ベストアンサー

$input_arrayの引数1,2がそれぞれintの想定であれば

PHP

1$variable_select = $input_array[1]; 2$calculation = $input_array[2]; 3↓↓↓ 4$variable_select =(int) $input_array[1]; 5$calculation = (int)$input_array[2]; 6

としてみてください
(こまかい例外処理は無視しています)

投稿2019/06/13 03:15

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uppq

2019/06/13 03:25

改行されなくなりました。ありがとうございます!
退会済みユーザー

退会済みユーザー

2019/06/13 04:04

これ、なんで改行が入っちゃうんですか?
yambejp

2019/06/13 04:15

単純に標準入力で改行マークを拾っちゃってるんでは?
退会済みユーザー

退会済みユーザー

2019/06/13 04:24

$input_line のお尻に改行コードが残ってるってことですね。 fgets の仕様を少し勘違いしていたようです。 ありがとうございます!
退会済みユーザー

退会済みユーザー

2019/06/13 04:28

久しぶりに paiza 用スクリプト確認したら、trim してました。 使わないと忘れちゃいますね^^;
退会済みユーザー

退会済みユーザー

2019/06/13 08:23

やっぱり何かが違う気がする。。。 時間のあるときに、実験してみます。 なんか分かったら追記します。忘れちゃったらすみませんw
退会済みユーザー

退会済みユーザー

2019/06/13 10:55

yambejp さんの回答が正しかったです^^; 何かが違うとか言ってすみませんw
guest

0

yambejp さんの回答が正しかったです^^;
何かが違うとか言ってすみませんw

php

1<?php 2$input_num = (int)fgets(STDIN); 3$variable1 = 0; 4$variable2 = 0; 5for($i = 0; $i < $input_num; $i++){ 6 $input_line = fgets(STDIN); 7 $input_array = explode(" ", $input_line); 8 $order = $input_array[0]; 9 if($order == 'SET'){ 10 $variable_select = $input_array[1]; 11 $calculation = $input_array[2]; 12 if($variable_select == 1){ 13 $variable1 = $calculation; 14 }elseif($variable_select == 2){ 15 $variable2 = $calculation; 16 } 17 }else{ 18 $calculation = $input_array[1]; 19 if($order == 'ADD'){ 20 $variable2 = $variable1 + $calculation; 21 }elseif($order == 'SUB'){ 22 $variable2 = $variable1 - $calculation; 23 } 24 } 25} 26echo $variable1; 27echo $variable2; 28echo 'END';

php

1//input 22 3SET 1 20 4SET 2 30 5 6//output 720 830 9END

php

1//input 22 3SET 1 20 4ADD 40 5 6//output 720 860END

$variable2 = $variable1 + $calculationだけ見て、「キャストされるのになんで改行されるんだろ」って思ったんですが、改行されるのは$variable1 = $calculation$variable2 = $calculationですね^^;

投稿2019/06/13 10:54

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問