如果我在 PHP 或任何编程语言中调用类文件时使用 ./会影响应用程序的性能。
示例是:包括"./include/functions.php";
反对:包括"包含/功能.php";
写下你的意思。
./foo
表示foo
在当前目录中。
foo
表示foo
当前目录或包含路径中的任何目录中。
这是一个重要的意义差异,性能无关紧要,可以忽略不计。如果当前目录中存在foo
,则不会有任何区别。
php 文档 on include
:
如果定义了路径 - 无论是绝对路径(在Windows上以驱动器号或''开头,在Unix/Linux系统上以/开头)还是相对于当前目录(以.或..开头),则include_path将被完全忽略。例如,如果文件名以 .. 开头。/,解析器将在父目录中查找请求的文件。
在核心PHP.ini指令的描述中提到,
在包含路径中使用 . 允许相对包含,因为它表示当前目录。但是,显式使用 include './file' 比让 PHP 始终检查当前目录中的每个包含更有效。
但话又说回来,你不会经常打电话给include
。 性能开销可以忽略不计,对您的应用程序并不重要。 正如高德纳所说:"过早优化是万恶之源"
由于您使用的字符串的长度,速度差异微不足道。就样式而言,使用"./"意味着您有意表示相对文件名,并且没有意外错过前导斜杠。
没有太大区别。两者都产生相同的操作码,路径解析是在 PHP 核心中优化良好的 C 函数或(非常)优化的 C 系统调用中完成的。即使有差异,也不会影响您的整体性能,因为您很少require
数十万个文件......
编辑:我刚刚运行了一些测试(包括10,000个文件),绝对没有区别,除了:
-
./libdir/file.php
会寻找当前文件夹中的文件 -
libdir/file.php
会寻找文件在当前文件夹和$PATH
两者的意思相同。如果在解析它的PHP文件IO系统中存在差异,那么它应该是完全最小的,并且仅在大型基准测试中可见。你可以试试,但我怀疑差异会很大。