【PHP】ユーザー定義関数で複数の結果を返す方法

WordPressプラグインを作っている中で、ユーザー定義関数から複数の戻り値が欲しい場面がありました。

しかし困ったことに、phpのユーザー定義関数は基本的に結果を一つしか返すことができません

少し強引な手段ではありますが、配列にまとめることで「擬似的に」複数の結果を返すことができたのでメモしておきます。

php
<?php
function animals_cry() {
  $cry = array(
    'woof',
    'meow',
    'tweet',
    'squeek',
  );
  return $cry;
}
list( $dog, $cat, $bird, $mouse ) = animals_cry();
echo <<< EOF
<p>Dog goes "$dog"</p>
<p>Cat goes "$cat"</p>
<p>Bird goes "$bird"</p>
<p>And mouse goes "$mouse"</p>
EOF;
?>
出力結果

Dog goes “woof”

Cat goes “meow”

Bird goes “tweet”

And mouse goes “squeek”

ちなみに要素の中から特定の一つだけが欲しい場合も、以下のように書けば問題なく取得できますよ。

php
list( , $cat ) = animals_cry();// 2番目の要素が欲しいので、1番目の要素を空にする
echo '<p>When I say "' . $cat . '", my cat meows together.</p>';
出力結果
When I say “meow”, my cat meows together.
参考 PHP: list - Manualphp.net

phpに限らずプログラミングをする際、ユーザー定義関数の利用はコードをきれいに書く上でとても重要です。

「同じ処理を複数書くなら関数にしろ」は鉄則ですよね。

今回の方法でちょっとだけ関数の使い方が広がりましたので、色々と活用して遊んでみます!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です