«

PHP中getcwd和__DIR__的目录获取区别

磁力搜索 • 4 天前 • 1 次点击 • 资讯分享


getcwd() 和 dir 的主要区别在于:getcwd() 返回 php 脚本执行时的当前工作目录,而 dir 返回的是当前脚本所在的目录。1. getcwd() 获取的是当前 php 进程的工作目录,这个目录可以通过 chdir() 动态改变;2. dir 是魔术常量,返回脚本所在目录,静态且编译时确定。例如,在 index.php 中使用 chdir('includes') 改变工作目录后,getcwd() 返回的是 /var/www/html/includes,而 dir 返回的是 /var/www/html;3. 在 config.php 中,__dir__ 指向其所在目录 /var/www/html/includes。选择依据:需要动态路径时使用 getcwd(),如日志记录或命令行工具获取执行目录;需要脚本所在绝对路径时使用 dir__,如文件包含更稳妥。注意事项:getcwd() 可能受权限影响返回 false,__dir 更可靠且不受工作目录变化影响。

PHP中getcwd和__DIR__的目录获取区别

getcwd() 和 __DIR__,都是PHP里用来获取目录路径的,但它们之间可不是简单的“殊途同归”。用错了,轻则路径不对,重则程序跑飞。

PHP中getcwd和__DIR__的目录获取区别

getcwd() 获取的是当前PHP进程的工作目录,这个目录是可以动态变化的。__DIR__ 则是一个魔术常量,它返回的是当前脚本所在的目录,这个是静态的,编译时就确定了。

PHP中getcwd和__DIR__的目录获取区别

getcwd() 和 __DIR__ 的主要区别在于:getcwd() 返回的是 PHP 脚本执行时的当前工作目录,而 __DIR__ 返回的是包含当前脚本文件的目录。

立即学习“PHP免费学习笔记(深入)”;

PHP中getcwd和__DIR__的目录获取区别

如何选择:getcwd() 还是 __DIR__?

这其实取决于你的需求。

  • 需要的是动态路径? 比如,你的脚本可能通过 chdir() 改变了工作目录,那你肯定要用 getcwd()。
  • 需要的是脚本文件所在的绝对路径? 那就毫不犹豫地选择 __DIR__。

举个例子,假设你有这样一个目录结构:

/var/www/html/
├── index.php
└── includes/
    └── config.php
登录后复制


    还没收到回复