2

我有一段代码:

foreach (glob('mov/$context.mov') as $filename){ 
    $theData = file_get_contents($filename) or die("Unable to retrieve file data");
}

这是在该 glob 中添加变量的正确方法吗?$上下文

另外,在我的新文件中,我想用 $context 替换一个单词,所以我会写

$context = "word"; // so it adds that word to the glob function when the script is included in a different file.
4

3 回答 3

3

PHP 变量不在单引号内插值。使用双引号或将变量放在引号外

foreach (glob("mov/$context.mov") as $filename){ 

或者

foreach (glob('mov/'.$context.'.mov') as $filename){ 

如果你 $context = "word";在你的 foreach 之前这样做,那么 glob 会寻找mov/word.mov

参考

于 2013-10-07T15:07:44.930 回答
1

您可以使用以下任何一种方式 -

1.glob("mov/$context.mov")

2.glob("mov/".$context.".mov")

注意与双引号语法不同,特殊字符的变量和转义序列在出现在单引号字符串中时不会被扩展。

供参考:在这里阅读更多

于 2013-10-07T15:34:17.460 回答
1

您应该在函数的第一个参数中使用双引号glob

glob("mov/$context.mov")

或者,如果您愿意,可以使用括号

glob("mov/{$context}.mov")

这样,变量名将被替换为值。

编辑:
对于另一个问题:
具有该函数的脚本可以在脚本包含之前glob多次执行更改变量的值。$context例子:

$context = "word";
include("test.php");

$context = "foo";
include("test.php");
于 2013-10-07T15:09:34.123 回答