echo print printf sprintfの出力方法の違いを調べてみたんですが、複数のサイトを読み比べていて説明に矛盾があったのでハッキリした定義が分からなくなってしまいました
echoとprintで引数が1つだったり2つだったり・・・
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
過去から脈々と対立している不毛なecho派=print派戦争ですね?
基本的にはechoもprintも関数ではなく構文です。
なのでかっこでくくる必要はありません。
echoとprintの仕様上の違いはほぼありませんが
printは実行されると戻り値を返し、echoは返しません。
具体的には
PHP
1$a=print "test"; 2var_dump($a);
は可能ですが
PHP
1$b=echo "test"; 2var_dump($b);
はエラーになります。
一方printf()とsprintf()は関数です
それぞれ整形したデータを展開するときに使います
printf()は直接出力、sprintf()は戻り値として返します
PHP
1$c=123; 2printf("this is %s !",$c);
とすれば%sに数字が展開されて表示されます
sprintf()は別途出力する構文がない場合は出力されません。
変数に受けたりする場合便利ですね
PHP
1$d=456; 2$e=sprintf("this is %s !",$d); 3print $e;
投稿2016/07/29 07:26
総合スコア114843
0
ベストアンサー
PHPは極端に実用本位で作られた言語のため(作者いわく「言語を作るつもりなどなかった」とのこと)、他の言語からの影響が吹き溜まりのようになって、似て非なる構文があふれるようなことになっています。PHPを使う以上は、そういうものと諦めるしかありません。
printf
は「書式付き」という明確な違いがありますが、echo
とprint
に関しては、少なくとも「文字列1つを出力する」という目的で使う分には違いはありません。
複数の引数を取れるのはecho
だけ(もっとも、ふつうは文字列連結してしまうのでecho
に複数渡すことはしません)、値を返すので式に入れられるのはprint
だけ、という差異はありますが、普通やりませんので気にしなくて大丈夫です。
投稿2016/07/29 07:41
総合スコア145184
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
回答ではないのですが・・・実際にプログラムを走らせてみればいいのでは?
「追記」
情報がおかしいと思うときはまず実践、それとマニュアルの確認ですね。
PHPのマニュアルを確認しましたか? PHP マニュアル
投稿2016/07/29 07:24
編集2016/07/29 07:30総合スコア6851
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/29 07:46
0
定義とか深く考えなくてもいいんですよ。
用途に合わせて使えば。
単に出力したい → ehco,print
フォーマットして出力したい → printf
フォーマットした文字列を得たい → sprintf
投稿2016/07/29 07:20
総合スコア16998
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/29 07:27
2016/07/29 07:45