我正在尝试访问php variable
中的while loop
。必须{strong>在while循环上方打印此variable
。跟随技巧不起作用
<?php
$title = '';
?>
<a href=""><?php echo $title?></a>
<?php
$query = $con->prepare("SELECT * FROM notice WHERE id=:id");
$query->bindParam(':id',$_GET['id']);
$query->execute();
while($row=$query->fetch(PDO::FETCH_ASSOC)){
$title .= $row['title'];
?>
答案 0 :(得分:2)
PHP始终从上到下运行,因此您不能echo
在使用值填充变量之前先对其进行
因此,在这种情况下,您可以通过将echo
放在循环下面(即循环的 end 下面)来解决您的问题。
<?php
$title = '';
$query = $con->prepare("SELECT * FROM notice WHERE id=:id");
$query->bindParam(':id',$_GET['id']);
$query->execute();
while($row=$query->fetch(PDO::FETCH_ASSOC)){
$title .= $row['title'];
// ....
}
?>
<a href=""><?php echo $title?></a>
如果循环本身也产生输出,并且您想将标题放在该输出之上,则需要buffer the output循环,直到准备发送它为止。
<?php
$title = '';
$query = $con->prepare("SELECT * FROM notice WHERE id=:id");
$query->bindParam(':id',$_GET['id']);
$query->execute();
ob_start();
while($row=$query->fetch(PDO::FETCH_ASSOC)){
$title .= $row['title'];
// Produce any output you want
}
$loop_output = ob_get_clean();
?>
<a href=""><?php echo $title ?></a>
<?php echo $loop_output ?>