ホームページ  >  記事  >  バックエンド開発  >  PHPの相対パスと絶対パスの違い

PHPの相対パスと絶対パスの違い

王林
王林オリジナル
2019-09-17 13:04:343882ブラウズ

PHPの相対パスと絶対パスの違い

まず、この例のディレクトリ構造とこれら 3 つのファイルの内容を見てみましょう。

a.php

<?php
 
    include &#39;./c/d.php&#39;

b.php

<?php
 
    define(&#39;__B&#39;, &#39;this is a test&#39;);

c/d .php

<?php
 
    include &#39;../b.php&#39;;
 
    var_dump(__B);

c ディレクトリ配下の d.php ファイルは、その親ディレクトリ配下の b.php ファイルを参照しているため、c/d.php 単体で実行する場合はエラーは発生しません。ただし、b と同じディレクトリにある a.php が c/d.php を参照すると問題が発生し、ファイルが存在しないというエラーが報告されます。

考え:

おそらく、a.php が c/d.php を a.php に導入した後、'../b. をインクルードすることを意味します。 path php' は a.php に対する相対パスであり、a.php への相対パスが存在しないため、この問題が発生します。ファイルが複数の場所で参照される可能性がある場合に相対パスを使用すると問題が発生しやすくなりますが、絶対パスを使用するとこの問題を簡単に解決できます。

絶対パスを使用して問題を解決してください

a.php

<?php
    include __DIR__.&#39;/../b.php&#39;;
    var_dump(__B);

b. php

<?php
 
    define(&#39;__B&#39;, &#39;this is a test&#39;);

c/d.php

<?php
 
    define(&#39;__B&#39;, &#39;this is a test&#39;);

このように、ファイルの絶対パスが参照され、 __DIR__ は、php5.3 以降で使用できる事前定義されたマジック定数で、このファイルが配置されているディレクトリを示します。これを使用して、a.php および c/d を実行するときに絶対パスを書き込むことができます。 php php5.3以前の場合は、__DIR____の代わりにdirname(__FILE__)が使用されていましたが、正常に実行できます。

概要: PHP では、絶対パスは、ターゲットの場所に直接到達するディレクトリ内の絶対場所を指します。通常はドライブ文字から始まるパスであり、相対パスはベースになります。必要なファイルを見つけます (相対パスはターゲット ディレクトリからの相対パスです)。

上記の内容は参考用です。

推奨チュートリアル: PHP ビデオ チュートリアル

以上がPHPの相対パスと絶対パスの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。