変数にパスを代入する時の注意点

やりがちなミス:
パスが入った変数を代入するファイルから見たパスで、変数を定義すること。

変数を定義するファイルから見たパスで変数を定義する必要がある。(変数は相対パスでも絶対パスでもOK)


言葉だけでは分かりづらいので、PHPを使って具体的な例をあげてみる。

srcディレクトリの下に、viewsディレクトリ、new.phpファイルがある。そして、viewsディレクトリの下にindex.php、layout.phpがあるとする。

new.php内に
$content = __DIR__ . 'layout.php';
を定義する。

$content は new.phpから見たパスである。

views/index.php内に
require_once __DIR__ . '/../new.php'; 
include $content;
をプログラムする。

$content には new.phpから見たパスが入っていたが、これで layout.phpを指定することができている。


まとめ
変数にパスを代入し、その変数を読み込む時は、定義したファイルから見たパスで代入しなければいけない。(上記の例は絶対パスの場合だが、相対パスでも同じ)


いいなと思ったら応援しよう!