2015-08-16 147 views
0

我在一個目錄下面的三個文件,我的網站根目錄中稱爲inc爲什麼一個PHP文件包含在絕對路徑中的文件中,但不包含相對路徑?

  • a.php只會
  • b.php
  • c.php

a.php,我有下面的代碼:

<?php 

    include('b.php'); 
    include('c.php'); 

如果我有a.php使用絕對路徑在inc目錄之外的另一個文件內,b.phpc.php的include語句正常工作。但是,如果我使用相對路徑將a.php包含到inc目錄之外的文件中,則b.phpc.php的包含語句不起作用。

這是爲什麼?

+2

包括使用魔術常量__DIR__爲()路徑不是彼此相對,但對當前的工作目錄。 CWD是調用腳本的位置。 – mario

+0

馬里奧,你的評論是有道理的,但如果是這樣的話,當'a.php'包含在另一個具有絕對路徑但不包含相對路徑的腳本中時,爲什麼'a.php'中的代碼能夠工作? – HartleySan

+0

我懷疑這是否真的有效。這個例子太抽象了。 (將打印語句添加到/ b/c以確保它們真正運行,並且不僅僅是例如錯誤抑制,還可以在之後調試include_path。) – mario

回答

1

你應該

<?php include __DIR__ . '/b.php';