我无法理解以下 dirname() 函数代码
I fail to understand the following dirname() function code
OS:森托斯
PHP: 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__)
只进入目录 private。 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);
不确定 Doesn't __FILE__ suppose to be go to all the root directory 注释意味着什么(根目录总是 /
Unix,你不需要一个函数来动态计算它)。另外,请注意 dirname() 只是一个字符串函数,它不会检查或关心您的实际磁盘内容。
不知道你在期待什么,dirname()
的定义是:
Given a string containing the path of a file or directory, this function will return the parent directory's path that is levels up from the current directory.
因为 __FILE__ 定义为:
The full path and filename of the file with symlinks resolved. If used inside an include, the name of the included file is returned.
输出清晰:
- 对于文件,文件所在目录的完整路径。
- 对于目录,父目录的完整路径。
请注意,您的课程可能已经过时了,因为 __DIR__
作为 dirname(__FILE__)
的替代品存在,因为 PHP/5.3.0:
The directory of the file. If used inside an include, the directory of the included file is returned.
OS:森托斯 PHP: 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__)
只进入目录 private。 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);
不确定 Doesn't __FILE__ suppose to be go to all the root directory 注释意味着什么(根目录总是 /
Unix,你不需要一个函数来动态计算它)。另外,请注意 dirname() 只是一个字符串函数,它不会检查或关心您的实际磁盘内容。
不知道你在期待什么,dirname()
的定义是:
Given a string containing the path of a file or directory, this function will return the parent directory's path that is levels up from the current directory.
因为 __FILE__ 定义为:
The full path and filename of the file with symlinks resolved. If used inside an include, the name of the included file is returned.
输出清晰:
- 对于文件,文件所在目录的完整路径。
- 对于目录,父目录的完整路径。
请注意,您的课程可能已经过时了,因为 __DIR__
作为 dirname(__FILE__)
的替代品存在,因为 PHP/5.3.0:
The directory of the file. If used inside an include, the directory of the included file is returned.