-2

我有一个作为学校项目制作的网站,看起来我已经跳入了一些太深的东西。我正在使用 PHP 为每个数组对象创建一个页面。在每个页面中,我想个性化内容以匹配页面。例如,我创建了一个名为的页面,Darryl它将包含我的所有图像。将创建其他页面,并且这些页面的内容将根据页面动态创建。

我想要做的是更改img src使用 PHP 并使用计数器来弹出不同的图像。这对我来说很难解释。

我有这行包含 php 的 html 代码(它决定了显示哪些图像:

 <td><img style="width:11em;" class="magnify" src="<?php print $imgSrc; ?>"/><br><?php print $pageName; ?></td>

我遇到问题的部分是“ print $imgSrc; ”部分。这是我的 php 将创建 src 路径的区域。它使用这个变量 $imgSrc 来获得正确的路径。

该变量是:

 $imgSrc = "images"."/".$pageName."/".counter();

哪个写

4

1 回答 1

1

看起来您对函数是什么或何时执行感到困惑。如果这是您页面上的所有代码:

$imgSrc = "images"."/".$pageName."/".counter();
<td>
    <img style="width:11em;" class="magnify" src="<?php print $imgSrc; ?>"/><br>
    <?php print $pageName; ?>
</td>

然后$imgSrc只被写入一次。所以不管做什么counter(),它只做一次。您可以将整个事情包装在一个 for 循环中并取消counter()调用。您可以删除局部变量$imageSrc并动态定义属性,如下所示:

<td>
    <img style="width:11em;" class="magnify" src="<?php print "images"."/".$pageName."/".counter(); ?>"/><br>
    <?php print $pageName; ?>
</td>

然后,如果counter()函数本身是有状态的(例如,每次调用它时它都会返回不同的值),那么您就完成了。

您可以创建一个有状态的函数,如下所示:

$counter_var = 0;

function counter() {
    global $counter_var;
    return $counter_var++;
}

但是全局变量不受欢迎,因为它会产生难以追踪的副作用(以及其他原因)。大多数人会告诉你使用 for 循环。我只提到它是因为它看起来更接近您在原始代码中尝试做的事情。

于 2013-04-16T16:42:11.500 回答