includeとrequireの違いやパス指定のまとめ
違いについて
再読み込みを同じファイル内で行われた際の挙動が違う
参考:https://qiita.com/awesam86/items/3fa28e23c95ca74caddc
試してみた(index.phpでr.php, rone.phpを読み込み検証)
r.php
<?php
$r = 'hoge'
rone.php
<?php
$rone = 'hoge';
index.php
<?php
require 'r.php';
require_once 'rone.php';
echo $r. "\n"; //hoge
echo $rone. "\n"; //hoge
$r = 'hoge_change';
$rone = 'hoge_change';
echo $r. "\n"; //hoge_change
echo $rone. "\n"; //hoge_change
require 'r.php';
require_once 'rone.php';
echo $r. "\n"; //hoge(requireではファイルの読み込みが再度行われるため値も$r = 'hoge'が再読み込みされている)
echo $rone. "\n"; //hoge_change(require_onceでは一度しか読み込まれないため表示がhoge_changeのまま)
includeとの違いは
エラー出た時requireは画面全体が消える。includeは警告の為消えずに他の画面が表示される。
参考:公式ドキュメント
include