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

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

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

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

Q&A

4回答

596閲覧

やっぱりsprintf とprintfの違いが判らない

megumi.

総合スコア7

PHP

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

0グッド

1クリップ

投稿2020/05/28 06:23

編集2020/05/29 01:36

ドットインストールでsprintfは[ 値]みたいに値の前後に空白をいれたり、小数点以下何位まで表示するかといった内容を習ったのですが、先生は「printfというのもあります」と一言だけで済ませてそれ以上は教えてくれませんでした。ググったら「sprintfは値を返し、printfは結果を表示する」と出てきました。でも、習ったコードは普通にechoしていましたし、returnしていません。

<?php $name = 'Apple'; $score = 32.246; $info = "[$name][$score]"; echo $info.PHP_EOL; $info =sprintf("[%15s][%10.2f]",$name,$score); echo.$info.PHP_EOL; これが習ったコードです。 これがprintfだとechoの仕方に違いが出るんでしょうか? echo $name.PHP_EOL; echo $score>PHP_EOL;

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

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

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

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

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

maisumakun

2020/05/28 06:33

結局、疑問点はどのあたりなのでしょうか?
退会済みユーザー

退会済みユーザー

2020/05/28 08:06 編集

%が全角文字で大丈夫か?←見間違いでしたすみません
tanat

2020/05/29 01:29

関数の戻り値(もしくは返り値)については理解されていますか?
megumi.

2020/05/29 01:31

よくわかっていないです。
megumi.

2020/05/29 01:37

%は直しました。すみません
guest

回答4

0

printfとsprintfの違いだけなら

PHP

1$name = 'Apple'; 2$score = 32.246; 3printf("[%15s][%10.2f]<br>",$name,$score); 4print sprintf("[%15s][%10.2f]<br>",$name,$score);

投稿2020/05/28 06:32

yambejp

総合スコア114843

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

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

yambejp

2020/05/28 06:34

[$name][$score]は単純に変数を展開しているだけなのでわかりますよね?
megumi.

2020/05/29 01:25

はい。そこはわかります
guest

0

sprintf — フォーマットされた文字列を返す
返された結果は、普通は変数に代入して保持したりします。

printf — フォーマット済みの文字列を出力する
出力はそのまま標準出力(webブラウザ側への応答)に使われます。


php

1echo.$info.PHP_EOL;

echo直後のピリオドで文法エラーになります。

投稿2020/05/28 08:09

編集2020/05/28 08:13
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2020/05/28 08:10

ドキュメントを読めば、そこに参考になるサンプルコードもあるので、 ドットインストールで習ってないからっていう理由でコーディングできる範囲を狭めることがないことを期待します。
退会済みユーザー

退会済みユーザー

2020/05/29 03:52

https://3v4l.org/ を使うと、ファイルアクセスやデータベースアクセスしない範囲でphpのコードをテストできるから試すといいよ
guest

0

その関数名でぐぐると、関数の使い方が出るのでよんでみては。

  • printf

展開した結果の文字列を標準出力に出力(表示する)

  • sprintf

展開した結果を文字列に出力(変数に代入できる)

というちがいですね

投稿2020/05/28 06:46

y_waiwai

総合スコア87774

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

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

megumi.

2020/05/28 07:37

つまり、ここの場合結果を$infoに代入している。printfだったら、echo $name.$scoreにしているんでしょうか? (代入しない場合の表示がよくわからなくてすみません)
y_waiwai

2020/05/28 07:40

まあ、そんなイメージですね 別の回答にあるように、sprintf の結果を print してるのと一緒です<printf
guest

0

returnしていません。

これは、sprintf内部の話です。使う側でreturnを書くわけではありません。

投稿2020/05/29 01:35

maisumakun

総合スコア145184

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

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

megumi.

2020/05/29 01:38

ごめんなさい。わからないです。
maisumakun

2020/05/29 01:39

直接出力するだけなら、単にprintfを使っても、sprintfの結果をprintしても何も変わりません。 一方で、できた文字列を「それ以外」のこと(データベースに保存する、ファイルに書き出すなど)に使いたい場合、基本的にsprintfの一択です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問