在PHP中,如何在这样的变量周围引用?

时间:2014-04-02 14:13:25

标签: php wordpress

我在某个地方看到了这段代码片段,与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);

2 个答案:

答案 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