PHP上一直忽略的小常識

原來昨天標題不聳動,沒幾隻猴子上鉤(喂

今天終於把某個疑惑用實做來解決了……
說實在的,相對路徑和絕對路徑這個問題,有時候還真的會忽略呢!
這篇文章就簡短的說明一下摟!

目錄結構
├inc
│├frame.php
│└main.php
└ index.php

檔案內容

index.php

<?php
  include('inc/frame.php');
?>

frame.php

<?php
 include('main.php');
?>

main.php

<?php
  echo "Content Here!";
?>

就這麼簡單。
而打開 index.php 的結果,則是理所當然的輸出「Content Here!」

那麼,我忽略了什麼呢?

我一直認為如此使用,應該會呼叫和 index.php 同目錄下的 main.php
不過實際上並非如此,應會呼叫與 frame.php 同目錄的 main.php

不過加上個 ./ 結果就會不同了!

我忽略的到底是什麼呢?
就是 PHP 上的相對路徑使用。

我長期使用「絕對路徑」在撰寫,反而將相對路徑的運用忘記了!
這樣一來,能做的事情還真的被侷限了不少呢!

4 thoughts on “PHP上一直忽略的小常識

  1. 今天想了很久,怎麼在include file中的string variable用Abs path,最後才記起有這個magic constant ,dirname(__FILE__)。
    真倒霉。( 囧