PHPでウェブの世界と繋がろう!
menu
ホーム > PHPの文法 > 6 制御文 > 6-10 return 文

6-10 return 文

Pocket

- 1 分ノート ! -

  • return文は関数から値を返す
    //関数
    function funcName(){
        return 値;
    }
    
  • return文は配列やオブジェクトを含むあらゆるデータ型を返すことが可能
  • 関数やスクリプト自体(グローバルスコープの場合)の実行を終了させる
    //スクリプト終了
    return;
    
    //関数の実行を終了
    function funcName(){
        return 値;
        //以降は実行されない
    }
    
  • return文は関数ではなく言語構造なので、引数を括弧で囲う必要がない

return文とは
POINT

  • return文は関数から値を返す
    //関数
    function funcName(){
        return 値;
    }
    
  • return文は配列やオブジェクトを含むあらゆるデータ型を返すことが可能
  • 関数やスクリプト自体(グローバルスコープの場合)の実行を終了させる
    //スクリプト終了
    return;
    
    //関数の実行を終了
    function funcName(){
        return 値;
        //以降は実行されない
    }
    
  • return文は関数ではなく言語構造なので、引数を括弧で囲う必要がない

関数と return 文

return文は、関数から値を返します。関数内でreturn文が実行されると、関数の実行を停止し、return の引数を関数の値として返します。return文は、配列やオブジェクトを含むあらゆるデータ型を返すことが可能です。

return文は、関数ではなく言語構造であるため、引数を括弧で囲う必要がないことに注意しましょう。括弧で囲わずそのままにしておくのが一般的です。またそのほうがPHPにかかる負荷も低くなります。

パラメータを省略した場合は括弧も省略する必要があります。この場合の返り値はNULLです。return()に括弧をつけてコールしながら何も引数を指定しないと、パースエラーとなります。

変数をリファレンスで返す場合は、決して引数を括弧で囲ってはいけません。そのようにすると正しく動作しません。 return ($a); とすると、変数を返すのではなく ($a) を評価した結果を返すことになります (この場合は、もちろん $a の値です)。

関数から文字列型を返す

<?php
//文字列を返す
function hello(){
	return "Hello!<br/>\n";
}
echo hello();
?>

結果は

Hello!

となります。

関数から整数型を返す

<?php
//整数値を返す
function addUp($a, $b){
	$c = $a + $b;
	return "{$c}<br/>\n";
}
echo addUp(10, 15);
?>

結果は

25

となります。

関数から論理型を返す

<?php
function valueCheck($a, $b){
	if($a === $b)
	return TRUE;
	else
	return FALSE;
}
if(valueCheck(100, 100))
echo "値は同一です。<br/>\n";
else
echo "値は同一ではありません。<br/>\n";
?>

結果は

値は同一です。

となります。

関数から配列型を返す

<?php
//配列を返す
function psNumbers($a){
	return array(pow($a, 2), sqrt($a));
}
list($powNumber, $sqrtNumber) = psNumbers(16);
echo '2乗:'.$powNumber."<br/>\n";
echo '平方根:'.$sqrtNumber."<br/>\n";
?>

結果は

2乗:256
平方根:4

となります。

スクリプトの終了

return文は、スクリプト自体の実行を終了させることが出来ます。これは、グローバルスコープで呼び出される場合です。つまり関数外で実行される場合です。

<?php
//スクリプトの終了
return;
echo "スクリプトは終了しているのでechoの内容は出力されません。";
?>

結果は

となります。

return;の時点でスクリプトが終了しているので、echoは実行されず、何も表示されません。

return文が実行されたスクリプトが、require、require_once、include、include_once文で外部ファイルから読み込まれたものである場合、外部ファイルのreturn文が実行された時点で、スクリプトの制御が呼び出し元のファイルへ戻ります。

base.php 呼び出し元ファイル

<?php
include 'return.php';
echo "base.phpスクリプトの終了<br/>\n";
return;
?>

include.php インクルードファイル

<?php
echo "include.phpスクリプトの終了<br/>\n";
return;
?>

base.phpの実行結果は

include.phpスクリプトの終了
base.phpスクリプトの終了

となります。

また、return文に引数の値が指定されている場合は、その値は、require、require_once、include、include_once戻り値となります。

base.php 呼び出し元ファイル

<?php
echo include 'return.php';
echo "base.phpスクリプトの終了<br/>\n";
return;
?>

include.php インクルードファイル

<?php
return "return.phpからの戻り値<br/>\n";
?>

base.phpの実行結果は

return.phpからの戻り値
base.phpスクリプトの終了

となります。

サンプルコード
<h3>return文 スクリプトの終了</h3>
<?php
echo 'return前';
return;
echo 'スクリプトは終了しているのでechoの内容は出力されません。';
?>
実行結果
return文 スクリプトの終了
return前

– サンプル Click Here ! –

<h3>return文 関数から文字列型を返す</h3>
<?php
//文字列を返す
function hello(){
	return "Hello!<br/>\n";
}
echo hello();
?>

<h3>return文 関数から整数型を返す</h3>
<?php
//整数値を返す
function addUp($a, $b){
	$c = $a + $b;
	return "{$c}<br/>\n";
}
echo addUp(10, 15);
?>

<h3>return文 関数から論理型を返す</h3>
<?php
function valueCheck($a, $b){
	if($a === $b)
	return TRUE;
	else
	return FALSE;
}
if(valueCheck(100, 100))
echo "値は同一です。<br/>\n";
else
echo "値は同一ではありません。<br/>\n";
?>

<h3>return文 関数から配列型を返す</h3>
<?php
//配列を返す
function psNumbers($a){
	return array(pow($a, 2), sqrt($a));
}
list($powNumber, $sqrtNumber) = psNumbers(16);
echo '2乗:'.$powNumber."<br/>\n";
echo '平方根:'.$sqrtNumber."<br/>\n";
?>
実行結果
return文 関数から文字列型を返す
Hello!

return文 関数から整数型を返す
25

return文 関数から論理型を返す
値は同一です。

return文 関数から配列型を返す
2乗:256
平方根:4

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

投稿日:2011年11月6日
最終更新日:2014年02月20日

関連記事

配列関数サンプル

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://www.tryphp.net/phpref-structures_return/trackback/