直に`return`するPHPを読み込んだ場合の挙動のメモ

ファイルをincludeする前に言っておくッ!
おれは今returnが直書きされているファイルをほんのちょっぴりだが体験した い…いや…体験したというよりはまったく理解を超えていたのだが…… あ…ありのまま 今 起こった事を話すぜ! 「おれはreturnが直書きされているファイルをincludeしたと思ったらそいつを変数に代入できた」 な…何を言っているのかわからねーと思うがおれも何をされたのかわからなかった… 頭がどうにかなりそうだった…グローバル変数だとかサーバ変数だとかそんなチャチなもんじゃあ断じてねえ もっと恐ろしいものの片鱗を味わったぜ…

ふと疑問に思ったのですが、何と呼んだら良いのか分からなかったのでメモ。 まずは以下のサンプルコードをご覧ください。

hoge.php

<?php

return [
    'hieda' => array('toneri', 'sarume', 'kojiki'),
    'oho' => 'yasumaro',
    'fujiwara' => 'fuhito',
];
このように、PHPファイル内で直にreturnで値を返すコードがあるとします。 これを

fuga.php

<?php

include('./hoge.php');
このように別ファイルで読み込んだ場合、hoge.phpの値は取得できるのか、と。

結果

<?php

$hoge = include('./hoge.php');
var_dump($hoge);
/DIRECTORY/TO/ROOT/fuga.php:4:
array (size=3)
  'hieda' => 
    array (size=3)
      0 => string 'toneri' (length=6)
      1 => string 'sarume' (length=6)
      2 => string 'kojiki' (length=6)
  'oho' => string 'yasumaro' (length=8)
  'fujiwara' => string 'fuhito' (length=6)
……普通にできました。

検索した

「php return 直に include」等で検索したところ、php.netも引っかかりました。

参考

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。