在下面的代码中,我尝试使用echo $r_id[$d_id]['name'];"
在前一页中定义了$r_id = china
和$d_id = china1
,以便复制echo $china['china1']['name'];
,这将给出我从阵中获得了牛肉和西兰花的价值。
<?php
$china = array(
'china1'=> array(
'cat'=> "Chinese",
'id'=>"C1",
'name'=>"Beef and Broccoli",
'instruction'=> "Placeholder")
);
if(isset($_GET["r_id"])){
if(isset($_GET["d_id"])){
$r_id = $_GET["r_id"];
$d_id = $_GET["d_id"];
}
}
echo $r_id[$d_id]['name'];
?>
但我得到的只是:
Warning: Illegal string offset 'china1' in....
Warning: Illegal string offset 'name' in....
我在哪里弄错了? 上一页的代码:
<table border = 1px align = center style = "margin-top:100px;">
<tr>
<td><a href="recipes.php?r_id=china&d_id=china1"><img src="images/china1icon.jpg"/></a></td>
<td><img src="images/vietnam1icon.jpg"/></td>
<td><img src ="images/japan1icon.jpg"/></td>
<td><img src ="images/korea1icon.jpg"/></td>
</tr>
</table>
答案 0 :(得分:2)
您无法将变量直接传递到网址:<a href="recipes.php?r_id=$china&d_id=china1"></a>
。您应该在URL中打印出<a href="recipes.php?r_id=" . $china . "&d_id=china1"></a>
之类的变量,然后它才能正常工作。
在此页面上,$r_id
现在是'china'
,如果您希望echo $r_id[$d_id]['name'];
成为echo $china['china1']['name'];
,那么您需要$$r_id[$d_id]['name']
,请注意双美元符号,定义variable variable。