require_once("Auth/Auth.php");
require_once "Auth/Auth.php";
require_once 'Auth/Auth.php';
どの記述で書くのが一番お勧めか、理由もできればよろしくお願いします。
質問のリストにはありませんが、
require_once('Auth/Auth.php');
と書くことをお勧めします。
理由は下記の通り。
【1】かっこは必要不要?
phpの中枢に組み込まれていてphpの根幹を成す「言語構造」では基本的に(かっこ)は不要
追加機能である「関数」にはパラメータの有無にかかわらず形式として(かっこ)が必要となっています
require_onceは言語構造に含まれており、基本的には(かっこ)不要なものです
【2】シングルorダブル?
ダブルクォートで囲むと、変数やエスケープコードが入っていないかを検出する処理が必ず入るため、
変数やエスケープコードを含まないのであれば、単純に受け渡すだけのシングルクォートのほうが無駄なく処理が進みます
【3】結局は?
状況に応じて選択
通常 require_once 'Auth/Auth.php';
変数などを含む場合 require_once "{$hoge}/Auth.php";
式を含む場合 require_once require_once(dirname(__FILE__) . "/Auth.php");
詳しいご回答ありがとうございます。
学習中の身としては、「言語構造に含まれる」か「関数」かを意識したいですね。
で、
【3】でご教示いただきました内容に納得です。
ありがとうございます。
三つ、というか、以下の組合せの四つです。
まず、括弧については、省略しない方が良いでしょう。
引数が長くなったり、複数ついたときに、関数の終わりが「ここ」と分かる方が、多少なりともソースが見やすくなります。
ソースを見やすくすることで、引数の指定を間違う可能性が、少しでも減ります。
ダブルクォートかシングルクォートかは、どちらがお勧め、というのではなく、機能的に違いがあります。
固定の文字であれば、どちらでも構わないんですが、ダブルクォートの場合には、変数を内部に展開してくれます。
$file = 'Auth.php';
require_once("Auth/${file}");
文字列の一部が変わるときに使えます。
文字列の結合でも同じなんですが、場合によって、見やすさで使い分ければ良いと思います。
$file = 'Auth.php';
require_once('Auth/' . $file);
機能的にシンプルなシングルクォートの方が、処理が早いのか、という勘ぐりもあるかと思いますが、
よほどのことが無い限り、顕著な差は出てきません。
お手軽なのが php の良いところだと思うので、「後で変数展開をするかもしれないから、ダブルクォートにしておこうか」程度の認識で構わないと思います。
ご回答ありがとうございます。
ソースの可読性や、後の変更のしやすさも考えてのコーディングですよね。
細かな点ですが、決めておくと全体がピシッとするものだと思うので。
ご回答者様それぞれのコーディング哲学がお伺いできて大変興味深いです。
私はどうしようか、ちょっと迷ってきました。
よく考えてみようと思います。
ご教示ありがとうございます。
回答ありがとうございます。
require_once('Auth/Auth.php');という記述は、検索してもなぜかあまり出てこないんですよね。。
回答者様のアドバイスのとおり、
require_once('Auth/Auth.php');
をMyコーディング規約として採用したいと思います。
素朴な質問にご回答くださりありがとうございます。