直に`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で遊んだり、趣味で開発したり。