🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PHP

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

Q&A

解決済

3回答

4918閲覧

[php]echoとreturnの違いがわかりません

rihitoban

総合スコア25

PHP

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

0グッド

2クリップ

投稿2021/01/17 06:53

php

1<?php 2 3 // 関数getCircleAreaを定義してください 4 function getCircleArea($radius) { 5 echo $radius * $radius * 3; 6 } 7 8 // 関数getCircleAreaを呼び出して、戻り値を変数$circleAreaに代入してください 9 $circleArea = getCircleArea(5); 10 11 // $circleAreaをechoしてください 12 echo $circleArea; 13 14 ?>

php

1<?php 2 3 // 関数getCircleAreaを定義してください 4 function getCircleArea($radius) { 5 return $radius * $radius * 3; 6 } 7 8 // 関数getCircleAreaを呼び出して、戻り値を変数$circleAreaに代入してください 9 $circleArea = getCircleArea(5); 10 11 // $circleAreaをechoしてください 12 echo $circleArea; 13 14 ?>

echoとreturnの違いがわからず、また上記のコードでもechoされるのが同じ数字なので戸惑っています。何が違うのか教えていただけないでしょうか。

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

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

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

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

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

guest

回答3

0

echo は(ディスプレイへ)出力です。
return は(呼び出し元へ)返却です。

見た目は同じに見えますが、実は出力箇所が全然違います。

<?php // 関数getCircleAreaを定義してください function getCircleArea($radius) { echo $radius * $radius * 3; // (1) } // 関数getCircleAreaを呼び出して、戻り値を変数$circleAreaに代入してください $circleArea = getCircleArea(5); // $circleAreaをechoしてください echo $circleArea; // (2) ?>

まずこちらの場合は、(1)の箇所で「75」を出力し、(2)の箇所では何も出力していません。

<?php // 関数getCircleAreaを定義してください function getCircleArea($radius) { return $radius * $radius * 3; // (3) } // 関数getCircleAreaを呼び出して、戻り値を変数$circleAreaに代入してください $circleArea = getCircleArea(5); // (5) // $circleAreaをechoしてください echo $circleArea; // (4) ?>

それに対しこちらは、(3)のところでは何も出力せず、(4)のところで「75」を出力しています。

では(3)は何をしているかというと、(5)の箇所で呼び出されたので、そこで処理した値「75」を$circleAreaに代入しています。
逆に(1)では出力しかしていないので、何も返しません。そのため$circleAreanullが代入されています。

PHP: echo - Manual
PHP: return - Manual

投稿2021/01/17 07:06

yuuyu

総合スコア1139

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

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

0

どこまでのものを求められてるか分かりませんが、
全然違います。

echo

echo — 1 つ以上の文字列を出力する
return
return は、プログラムの制御を呼び出し元に戻します。 呼び出し側のモジュールでは、呼び出しの次の式から続行します。

たまたま、returnした文字列をechoしてるだけですね。

1つ目のコードをこうしても同じです。

php

1echo getCircleArea(5);

投稿2021/01/17 07:08

m.ts10806

総合スコア80875

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

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

0

ベストアンサー

echo というのはコンソールに何かを書き出すときに使用します。

echo 'hello'

だとすると、hello とコンソールに書き出されます。
たったこれだけの役目です。

return というのは関数(function)の中で使用され、

$a = 関数 関数{ return 'hi' }

とあったとすると、$aの中に'hi'が書き込まれます。
これだけの役目です。

その$aを

echo $a

とすると$aの中に'hi'が入っているので、コンソールに hi と書き出されます。

投稿2021/01/17 07:07

編集2021/01/17 07:08
kserizawa081

総合スコア17

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

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

m.ts10806

2021/01/18 05:13 編集

例としても、文の終端がないのはマズイかと。(関数も同じく。PHP前提とした場合)
kserizawa081

2021/01/19 04:46 編集

ご指摘ありがとうございます。 たしかにその通りかもしれません。ただ、質問者さんが初心者で、わかりやすさだけを考えると、こういう説明の方が良いんじゃないかと思って書きました。 ただそのままコードを貼り付けても動きませんし、その旨は記述すべきだったかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問