此代码出现以下语法错误:
警告:natcasesort()
期望参数1为数组,布局在第14行的网站 /assets/country-gallery-js.php中给出
警告:第15行网站 /assets/country-gallery-js.php中为foreach()
提供的参数无效
<?php $thumbs = glob("img/thumb/*.{jpg,png,gif}", GLOB_BRACE); ?>
<?php
if(count($thumbs)) {
natcasesort($thumbs);
foreach($thumbs as $thumb) {?>
<li class="item">
<a class="fancybox" rel="gallery1" href="img/large/<?php echo basename($thumb) ?>">
<img src="<?php echo $thumb ?>" class="img-circle" width="100%" alt="" />
</a>
</li>
<?php
}
}
else {
echo "Sorry, no images to display!";
}
?>
我不确定为什么。代码扫描文件夹以查找要显示为轮播的图像。它会扫描缩略图和大图像文件夹中的灯箱。当图像在文件夹中时,它就像一个款待......当文件夹为空时,它应该回显“其他”文本代码。相反,它会显示此语法。
任何人都可以帮我解决这个问题,并停止出现语法吗?
答案 0 :(得分:1)
Use is_array instead of count
<?php $thumbs = glob("img/thumb/*.{jpg,png,gif}", GLOB_BRACE); ?>
<?php
if (is_array($thumbs)) {
natcasesort($thumbs);
foreach ($thumbs as $thumb) {
?>
<li class="item">
<a class="fancybox" rel="gallery1" href="img/large/<?php echo basename($thumb) ?>">
<img src="<?php echo $thumb ?>" class="img-circle" width="100%" alt="" />
</a>
</li>
<?php
}
} else {
echo "Sorry, no images to display!";
}
?>
答案 1 :(得分:0)
我相信使用大括号语法:
glob("img/thumb/*.{jpg,png,gif}", GLOB_BRACE);
不会工作,这可能会:
glob("img/thumb/*.jpg,img/thumb/*.png,img/thumb/*.gif", GLOB_BRACE);
要检查问题所在的第一步是检查变量$ thumbs所具有的值。这会告诉你问题可能在于glob函数。