我认为我只是语法无效,但对于我的生活,我无法理解。我有一个包含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”标签的“标题”部分只包含第一个单词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>
有人可以解释我的错误吗?提前谢谢。
答案 0 :(得分:1)
您忘记了属性值周围的双引号,因此只有第一个单词才算数。其余的成为(无效)属性名称。
答案 1 :(得分:1)
习惯包装,数组索引在双引号内,即"
用于字符串索引。
$screenshot = array(
array(
"Carousel" => "Library.png",
"Caption" => "Long caption for the library goes here",
"ListItem" => "The Library")
);
答案 2 :(得分:1)
正如Starx和Ignacio所提到的,需要引用数组的关键部分。它们是单引号还是双引号并不重要。如果您打开更详细的日志记录(如E_ALL而不是E_ALL&amp; ~E_NOTICE),您将收到如下消息:
PHP注意:使用未定义的常量轮播 - 在第3行的badarray.php中假定为“Carousel”
PHP注意:使用未定义的常量标题 - 在第3行的badarray.php中假定为“Caption”
PHP注意:使用未定义的常量ListItem - 在第3行的badarray.php中假定为'ListItem'
PHP尝试查找已使用这些名称定义的常量。当它找不到它时,它假设你指的是该值的字符串。这意味着如果您定义了名为“Carousel”,“Caption”或“ListItem”的常量,它将更改您定义的数组中的键值。
我看到的另一个问题,可能只是包含了部分代码,外部数组中只有一个数组,所以当你访问$ screenshot [$ row]时,什么都没有一旦你的循环增加$ row超过0。
如果您可以提供使用该数组输出的内容,我可以帮助您构建该代码。
答案 3 :(得分: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>";