点斜线对PHP的作用是什么?

A.这是做什么的?

require ("./file.php"); 

B.与此相比?

 require ("file.php"); 

(它不是一个目录..这将是)

 require ("../file.php"); 

./当前目录。 它和file.php基本上是一样的,但是在很多情况下(包括这个),它并不检查PHP可能查找文件的任何标准位置,而是检查当前目录。

从PHP文档 (注意最后一句):

包含的文件首先在每个相对于当前工作目录的include_path条目中查找,然后在当前脚本的目录中查找。 例如,如果你的include_path是库文件,当前的工作目录是/ www /,你包括include / a.php,并且在那个文件中包含了“b.php”,b.php首先在/ www / libraries /中查找,然后在/networking/包含/。 如果文件名以./或../开头,则仅在当前工作目录中查看。

第一个版本强制内部机制相对于…直接执行的文件包含文件。 所以例如你有

的index.php

 // directly executed script (php -f index.php or from a browser) include 'second.php'; 

second.php

 // This is included relatively to index.php // Actually, it is first searched relatively to include_path, then relatively // to index.php include './third.php'; 

third.php

 // This is included relatively to second.php ONLY. It does not search // include_path return "foo"; 

简答题

你是对的,这不是一个目录。 一个 。 指的是你所在的目录,而..指的是父目录。

意思是,./file.php和file.php在function上等同于PHP。 这是相关的文档页面: http : //us.php.net/manual/en/wrappers.file.php

更长的答案

但是,仅仅因为他们在这方面的工作原理并不意味着他们总是一样的。

当你在一个* nix shell环境中运行,并且键入一个可执行文件的名字时,shell将会在PATH目录中查找,但是它不会在CWD或者你目前所在的目录中查找。

所以,如果你在一个名为myprogram.php(这将是一个PHP CLI文件)的目录下,你只需input:

myprogram.php

不pipe你的程序是否可执行。 shell会在/ bin /,/ usr / bin / etc中查找你的文件,但是不会在./或者你所在的目录中查找。

要执行该程序而不将您的目录添加到PATH,您需要键入

./myprogram

所以,./更明确。 这意味着,“你正在寻找的文件已经在这里”,没有./的意思,“该文件应该在程序寻找文件的地方”。

简单地说,你只是告诉php将文件包含在当前目录中,或者如果文件不存在,就会失败。

如果你使用格式“indexcommon3.php”而该文件不存在,php将search到include_path系统variables。

参考你可以使用http://www.php.net/manual/en/function.include.php

点斜线只会强制在当前目录中find文件,而不是额外searchinclude_path设置中提到的path。

它明确地命名当前目录。