我在某个地方看到了这段代码片段,与wordpress有关:
$theme_root = get_theme_root();
$files_array = glob("$theme_root/*", GLOB_ONLYDIR);
这是我不理解的"$theme_root/*"
部分。为什么围绕变量引用?
为什么上面的代码不会像这样编写:
$theme_root = get_theme_root();
$files_array = glob($theme_root . "/*", GLOB_ONLYDIR);
答案 0 :(得分:3)
"因为它有效"用PHP做事情是一个危险的常见原因......在这种情况下,这没什么大不了的,但在其他地方这个原则可能非常危险。
无论如何,最好的是,它应该是:
$theme_root . '/*'
请注意单引号的使用 - 这些解析速度更快,因为PHP不必查找要插入或转义序列的变量来处理。
然而,那说,"修复"像这样基本上是微观优化,而不是你应该花时间去做的事情。
答案 1 :(得分:0)
当您使用双引号时,PHP会尝试解释字符串
中的变量$test = 'aaa';
echo "test:$test"; //returns 'test:aaa';
echo 'test:$test'; //returns 'test:test';
这个语法可能很有意思,因为它很清楚,但是如果你不在字符串中使用变量它会慢一些:
echo "aaaaaaaaaaaaaaaaaa"; //slower
echo 'aaaaaaaaaaaaaaaaaa'; //faster