具有不同变量名称的相同代码在 PHP 中不起作用?

Same code with different variable name not working in PHP?

我正在使用此代码列出目录中的所有文件,该目录运行良好

<?php 
$exclude = array("index.php","cssheadertop.php","cssheaderbottom.php");
$cssfiles = array_diff(glob("*.php"), $exclude); 
foreach ($cssfiles as $cssfile) {
$filename = "http://example.com/lessons/css/".$cssfiles[$cssfile];
outputtags($filename,true,true); 
}
?>

但是,使用此代码网页上不会显示任何内容。我不明白为什么

<?php 
$exclude = array("index.php","htmlheadertop.php","htmlheaderbottom.php");
$htmlfiles = array_diff(glob("*.php"), $exclude); 
foreach ($htmlfiles as $htmlfile) {
$filename = "http://example.com/lessons/html/".$htmlfiles[$htmlfile];
outputtags($filename,true,true); 
}
?>

试试这个:

<?php
$exclude = array("index.php","htmlheadertop.php","htmlheaderbottom.php");
$htmlfiles = array_diff(glob("*.php"), $exclude); 
foreach ($htmlfiles as $htmlfile) {
    $filename = "http://example.com/lessons/html/".$htmlfile;
    outputtags($filename,true,true); 
}
?>

$htmlfiles[$htmlfile] 不应设置且不工作。

您需要在 foreach 循环中使用 $htmlfile 而不是 $htmlfiles[$htmlfile],它可以与任何其他变量的名称一起使用

<?php 
   $exclude = array("index.php","htmlheadertop.php","htmlheaderbottom.php");
   $htmlfiles = array_diff(glob("*.php"), $exclude); 
   foreach ($htmlfiles as $htmlfile) {
     $filename = "http://example.com/lessons/html/".$htmlfile;
     outputtags($filename,true,true); 
   }
?>