PHPでこれらの2つの違いは何ですか?PHPにはプレフィックスとしてドットが付きます
require "./vendor/autoload.php";
両方のステートメントについては
require "vendor/autoload.php";
対autoload.phpスクリプトが発見されたが、特定の環境ではオートローダ自体がクラスを見つけることができません。私はオートローダーの問題自体を解決しようとはしていませんが、なぜこれら2つが違うのかを理解しようとしています。
PHPでこれらの2つの違いは何ですか?PHPにはプレフィックスとしてドットが付きます
require "./vendor/autoload.php";
両方のステートメントについては
require "vendor/autoload.php";
対autoload.phpスクリプトが発見されたが、特定の環境ではオートローダ自体がクラスを見つけることができません。私はオートローダーの問題自体を解決しようとはしていませんが、なぜこれら2つが違うのかを理解しようとしています。
.
は、含まれているファイルのパスを、それらを含むファイル)。
は、次のような構造を取ることができます:index.php
はfile1.php
を含み、そしてあなたがfile2.php
を含めfile1.php
をしたい
/index.php
/file2.php
/folder/
/file1.php
場合 - あなたはrequire './file2.php';
(インナーフォルダ内にあるfile1.php、内側)を使用してこれを行うことができます。
あなたは内file2.php
を探しているfile1.php
内部require 'file2.php';
を使用している場合folder
(ファイルがありませんので、あなたにエラーを与えるであろう)。
.
は、あなたが入っているフォルダを指しています。これは、phpのためのファイルのためのほとんどのunix
構文です。私は__DIR__
を使用して、インクルードされたファイルに接頭辞を付けるべきだと思うので、相対パスでいくつかの問題を避けることができます。
[PHPにドットスラッシュは何を含むのですか?](http://stackoverflow.com/questions/579374/what-does-the-dot-slash-do-to-php-include -calls) – j08691
2番目のファイルは、現在のディレクトリから2番目のファイルとして検索を開始します。しかし、2番目の方法は、linux/unixシステムから取得したものと同じです。ドットは現在のディレクトリで検索するようにシステムに厳密に指示します。これはなぜLinuxのソフトウェアのインストール/設定の手順が 'cd foo/&&/configure'で始まるのか – samayo