数组未返回整个元素


Array Not Returning Entire Element

我认为我只是有无效的语法,但就我的一生而言,我无法理解。我有一个包含3个元素的嵌套数组。

$screenshot = array( array( Carousel => "Library.png", Caption => "Long caption for the library goes here", ListItem => "The Library"));

我正在使用for循环来编写一些包含元素的HTML。

<?php
        for ( $row = 0; $row < 4; $row++)
        {
            echo "<div class='"feature-title'"><a href=" . $carousel_dir . $screenshot[$row]["Carousel"] . " title=" . $screenshot[$row]["Caption"] . " rel='"lightbox[list]'">" . $screenshot[$row]["ListItem"] . "</a></div>";
        }           
        ?>

我的问题是"a"标签的"title"部分只包括第一个单词Long。因此,在上述情况下,它将是:

<div class="feature-title"><a href="/images_carousel/1A-Library.png" title="Long" caption for the library goes here rel="lightbox[list]" class="cboxElement">The Library</a></div>

有人能解释一下我的错误吗?提前谢谢。

您忘记了在属性值周围使用双引号,所以只计算第一个单词。其余的将成为(无效的)属性名称。

养成将数组索引包装在双引号内的习惯,即字符串索引的"

$screenshot = array( 
    array( 
        "Carousel" => "Library.png", 
        "Caption" => "Long caption for the library goes here", 
        "ListItem" => "The Library")
    );

正如Starx和Ignacio所提到的,数组的关键部分需要引用。不管是单引号还是双引号。如果你打开更详细的日志记录(比如E_ALL而不是E_ALL&~E_NOTICE),你会得到这样的消息:

PHP注意:在第3行的badarry.PHP中使用未定义的常量Carousel-假定为"Carousel"

PHP注意:在第3行上使用未定义的常量Caption-假定为badarry.PHP中的"Caption"

PHP注意:在第3行的badarry.PHP中使用未定义的常量ListItem-假定为"ListItem"

PHP试图找到一个用这些名称定义的常量。当它找不到一个时,它会假设你指的是该值的字符串。这意味着,如果你曾经定义过一个名为";旋转木马"标题";或";ListItem"它将更改您定义的数组中的键值。

我看到的另一个问题,可能只是只包括了部分代码,因为外部数组中只有一个数组,所以当你访问$screen[$row]时,一旦你的循环将$row增加到0以上,就什么都没有了。

如果您能够提供您试图使用该数组输出的内容,我可以帮助您构建该代码。

请使用此代码

echo "<div class='"feature-title'"><a href='" . $carousel_dir . $screenshot[$row]["Carousel"] . "' title='" . $screenshot[$row]["Caption"] . "' rel='"lightbox[list]'">" . $screenshot[$row]["ListItem"] . "</a></div>";