伙计我经常使用以下代码,但没有正确理解函数的确切语义。 特别是对于最后两个str_replace函数。任何人都能解释我这里发生了什么(稍微详细一点)?
$this_file = str_replace('\\', '/', __FILE__);
$doc_root = $_SERVER['DOCUMENT_ROOT'];
$web_root = str_replace(array($doc_root, 'application/config.php'), '', $doc_root);
$srv_root = str_replace('application/config.php', '', $doc_root);
答案 0 :(得分:5)
\
替换反斜杠/
(之后不使用该变量)。application/config.php
的任何出现替换为文档根字符串,并将其存储在$web_root
中(对我来说似乎是无用的代码)。application/config.php
的任何出现并将其存储在$srv_root
中(再次,看起来像无用的代码,因为文档根目录应该是目录,而不是文件)。结论:似乎这段代码可以翻译成以下内容,并且这些“计算”实际上都不是必需的:
$doc_root = $_SERVER['DOCUMENT_ROOT'];
$web_root = '';
$srv_root = $doc_root;
甚至更短:
$doc_root = $srv_root = $_SERVER['DOCUMENT_ROOT'];
$web_root = '';