"." 在 php 中指当前路径,这个“当前路径” 与 php 是怎样执行的有关

假设 web 目录是这样的

/path/to/web/
|- index.php
|- config
   |- main.php

index.php 中代码是这样的:

<?php
// index.php
$base_dir = dirname(__FILE__);

echo $base_dir, "\n";
echo '"." in index.php is ', realpath('.'), "\n";
require $base_dir . '/config/main.php';

?>

main.php 中代码是这样的:

<?php
// config/main.php
echo '"." in main.php is ', realpath('.'), "\n";
?>

如果 index.php 是通过 web 访问执行的,则 realpath('.') 是这个文件所在的路径, 不管 realpath('.') 是在 index.php 中还是 index.php require 的其他的文件中;

如果 index.php 是 cli 下执行的,则 realpath('.') 是 current work direcotry 也就是 php 执行所在的目录,与 index.php 文件所在目录无关

php 的 include_path

blog comments powered by Disqus