最近、WordPressオリジナルテーマを改良した時、「return」がすごく便利なことに気づきました。
今まで、使い所がよくわかってなかったんですが、今ではこれがないと色々と困るレベルです。
そこで今回は、returnの基本的な使い方から、実践で役立つ使い方までご紹介します。
returnの使い方
「return」は、文字通り何かを「戻す」ために使われます。
- 文字列
- 値
- 変数
など。基本的な形はこちら。
return 〇〇;
ただ、この形だと、「戻る場所」がありません。ですので、実際に使われる基本的な形はこのようになります。
function △△() {
return 〇〇;
}
「△△という関数を定義し、〇〇を戻す処理をする」という意味です。この場合、〇〇は「関数△△の処理時の結果」に戻ります。
returnを使う場面
このreturn、いまいち使う場面がわからないと思うので、具体例を挙げながらご説明します。
例えば、変数testに「これはテストです」という文字列を入れます。
$test = 'これはテストです';
そして、変数testの中に入っている文字列を呼び出してみましょう。
$test = 'これはテストです';
echo $test;
//実行結果
これはテストです
はい。何の問題もありませんね。
では、変数testをAのファイルで定義し、Bのファイルで呼び出すにはどうすればいいでしょうか?
ファイルAで、
$test = 'これはテストです';
ファイルBで、
echo $test;
とやっても、同じ結果にはなりません。
なぜなら、変数testはファイルBで定義されていないからです。
「じゃあ、ファイルBで同じように定義すればいい」と思うかもしれませんが、変数testを100のファイルで呼び出すとしたらどうでしょう?面倒ですよね?
しかも、変数testの定義が変わった場合、100のファイルの定義もすべて修正する必要があります。
そこで、returnの出番です。
関数化すればすべてのファイルで使える
というのも、先ほどのようにreturnは基本的に関数化して使いますが、関数は1つのファイルで定義すれば他のファイルでも扱うことができます。
つまり、
function get_test() {
$test = 'これはテストです';
return $test;
}
と、ファイルAで関数化してしまえば、
echo get_test ();
と、関数名を書くだけで、他のファイルでも変数の値を呼び出せるわけです。
グローバル変数や定数として定義する必要も、他のファイルで呼び出すための専用の処理も必要ありません。
…いかがですか?「returnすげー!」って思いませんか?僕は超感動しました(笑)
今回の例だと、簡単な変数を定義して、それを単純に呼び出しただけですが、
- 関数の中で条件分岐
- 配列を呼び出す
- 関数の中で別の関数を呼び出す
など、実際はもっと複雑なことをやるので、処理がいくら複雑になっても別ファイルで簡単に呼び出せるreturnはかなり使いやすいですよ。
条件分岐も楽になる
また、returnを使うことにより、条件分岐もかなり楽になります。
サンプルコードがこちら。
if ( get_test() ) { // get_testに何かが入っていた場合
echo get_test();
} else { // get_testに何も入っていなかった場合(nullの場合)
echo '何も入力されていませんでした';
}
また、こんなこともできます。
if ( test_a() == 'テストa' ) { // 戻り値(返り値)が「テストa」の場合
echo 'おはようございます';
} elseif( test_b() == 'テストb' ) { // 戻り値が「テストb」の場合
echo 'こんにちは';
} else { // それ以外
echo 'はじめまして';
}
処理を停止する時にもよく使う
returnをするとそこですべての処理が終了するので、処理を止める時にもよく使われます。
例えば、モバイルページの場合だけ処理をするという場合、通常は以下のようなコードを書くと思います。
function return_test() {
if(is_mobile()) { //モバイルページの時だけ処理をする
//処理内容
}
}
上記のコードでも特に問題はありませんが、returnを使った方が可読性が良くなります。
function return_test() {
if(!is_mobile()) return; //モバイル以外のページなら処理停止
//処理内容
}
こういった方法はよく使われますので、ぜひ覚えておきたいところです。
まとめ
「関数や変数を定義したものの、どうやって呼び出すんだっけ…」という悩みがなくなるので、returnは上手く活用したいところです。
呼び出し方がすべて「関数名を書くだけ」なので本当に楽になりますよ。
以上、参考にしていただければ嬉しいです。