我认为我只是有无效的语法,但就我的一生而言,我无法理解。我有一个包含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>";