OS: Centos 菲律宾比索: 7.3
我正在学习Kevin Skoglund关于PHP的初学者课程。这些是代码中的几行。我了解define()
和dirname()
功能。我只是不明白这里发生了什么。
define("PRIVATE_PATH", dirname(__FILE__));
define("PROJECT_PATH", dirname(PRIVATE_PATH));
define("PUBLIC_PATH", PROJECT_PATH . '/public');
define("SHARED_PATH", PRIVATE_PATH . '/shared');
这是 4 个常量的输出
/var/www/html/globe_bank/private
/var/www/html/globe_bank
/var/www/html/globe_bank/public
/var/www/html/globe_bank/private/shared
我不明白为什么dirname(__FILE__)
只到目录私有。文件不应该去所有到根目录吗? 与第二个常量相同
PROJECT_PATH
.为什么我们必须传递参数PRIVATE_PATH
?
这是另一段代码。
$public_end = strpos($_SERVER['SCRIPT_NAME'], '/public') + 7;
$doc_root = substr($_SERVER['SCRIPT_NAME'], 0, $public_end);
define("WWW_ROOT", $doc_root);
不确定不__FILE__ 应该去所有到根目录备注是什么意思(根目录在 Unix 上总是/
,你不需要函数来动态计算它(。另外,请注意,dirname(( 只是一个字符串函数,它不会检查或关心您的实际磁盘内容。
不知道你期待什么,dirname()
的定义是:
给定一个包含文件或目录路径的字符串,此函数将返回父目录的路径,该路径从当前目录向上升级。
由于__FILE__定义为:
解析了符号链接的文件的完整路径和文件名。如果在包含中使用,则返回包含文件的名称。
输出很清楚:
- 对于文件,为文件所在目录的完整路径。
- 对于目录,为父目录的完整路径。
请注意,您的课程可能已经过时了,因为自 PHP/5.3.0 以来__DIR__
作为dirname(__FILE__)
的替代品存在:
文件的目录。如果在包含中使用,则返回包含文件的目录。