2016-11-07 12 views
0

PHPでこれらの2つの違いは何ですか?PHPにはプレフィックスとしてドットが付きます

require "./vendor/autoload.php"; 

両方のステートメントについては

require "vendor/autoload.php"; 

対autoload.phpスクリプトが発見されたが、特定の環境ではオートローダ自体がクラスを見つけることができません。私はオートローダーの問題自体を解決しようとはしていませんが、なぜこれら2つが違うのかを理解しようとしています。

+3

[PHPにドットスラッシュは何を含むのですか?](http://stackoverflow.com/questions/579374/what-does-the-dot-slash-do-to-php-include -calls) – j08691

+0

2番目のファイルは、現在のディレクトリから2番目のファイルとして検索を開始します。しかし、2番目の方法は、linux/unixシステムから取得したものと同じです。ドットは現在のディレクトリで検索するようにシステムに厳密に指示します。これはなぜLinuxのソフトウェアのインストール/設定の手順が 'cd foo/&&/configure'で始まるのか – samayo

答えて

1

.は、含まれているファイルのパスを、それらを含むファイル)。

は、次のような構造を取ることができます:index.phpfile1.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(ファイルがありませんので、あなたにエラーを与えるであろう)。

3

.は、あなたが入っているフォルダを指しています。これは、phpのためのファイルのためのほとんどのunix構文です。私は__DIR__を使用して、インクルードされたファイルに接頭辞を付けるべきだと思うので、相対パスでいくつかの問題を避けることができます。

関連する問題