如果在 php 中循环,为什么我不能访问内部变量
Why can't i access variable inside if loops in php
我正在制作简单的购物车,但我真的被最终价格 a.k.a $fp
变量困住了。
总是有:Notice: Undefined variable: fp in C:\xampp\htdocs...
事情是一切正常,数据库中的数据是在现场获取的,包括价格但是当我想显示 $fp(final price) 时它显示该错误。
我尝试在 if($row['ID'] == $id)
循环后的 else 语句中将其设置为 0,但没有任何反应
我试图让它成为全球性的:
global $fp;
$fp = $fp + intval($row['price']);
当我这样做时,错误消失了,但它什么也没做(空 space)。也许我只是坐得太久了,但我无法理解为什么我无法访问该变量或正在发生的事情。
<section class="cart">
<?php
if(isset($_SESSION['cart'])){
$product_id = array_column($_SESSION['cart'],'product_id');
$sql = "SELECT * FROM muzi;";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)){
foreach($product_id as $id){
if($row['ID'] == $id){
echoItem($row['fotografia'],$row['price'],$row['znacka'],$row['konkretne'],$size);
$fp = $fp + intval($row['price']);
}
}
}
}else{
echo "<h5>Cart is empty</h5>";
}
?>
<h2 class="h2-cart-item">PRICE: <?php $fp;?> €</h2>
</section>
function echoItem($productIMG, $productPrice, $znacka, $typ_oblecenia){
$product = "
<article class='clearfix'>
<img src='../img/$productIMG' alt='hihi' style='width: 10%;'>
<div class='info-text-cart'>
<p>specific type: $typ_oblecenia</p>
<p>Brand: $znacka</p>
<button><i class='fas fa-times'></i></button>
</div>
<div class='important-info-cart'>
<p>Price: $productPrice €</p>
<p>quantity: 1</p>
</div>
</article>
";
echo $product;
}
ps:我在打字方面拥有一切权利。我只是将其中涉及的一些内容翻译成英文,这样更有意义。
$fp 从未如前所述声明过。
如果您将其声明为全局(或非全局),您应该能够在第二个代码块上使用它,您尝试时没有看到任何内容的原因是您忘记了 echo它.
一个有效的例子是:
<section class="cart">
<?php
$fp = 0;
if(isset($_SESSION['cart'])){
$product_id = array_column($_SESSION['cart'],'product_id');
$sql = "SELECT * FROM muzi;";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)){
foreach($product_id as $id){
if($row['ID'] == $id){
echoItem($row['fotografia'],$row['price'],$row['znacka'],$row['konkretne'],$size);
$fp = $fp + intval($row['price']);
}
}
}
}else{
echo "<h5>Cart is empty</h5>";
}
?>
<h2 class="h2-cart-item">PRICE: <?php echo $fp;?> €</h2>
</section>
我正在制作简单的购物车,但我真的被最终价格 a.k.a $fp
变量困住了。
总是有:Notice: Undefined variable: fp in C:\xampp\htdocs...
事情是一切正常,数据库中的数据是在现场获取的,包括价格但是当我想显示 $fp(final price) 时它显示该错误。
我尝试在 if($row['ID'] == $id)
循环后的 else 语句中将其设置为 0,但没有任何反应
我试图让它成为全球性的:
global $fp;
$fp = $fp + intval($row['price']);
当我这样做时,错误消失了,但它什么也没做(空 space)。也许我只是坐得太久了,但我无法理解为什么我无法访问该变量或正在发生的事情。
<section class="cart">
<?php
if(isset($_SESSION['cart'])){
$product_id = array_column($_SESSION['cart'],'product_id');
$sql = "SELECT * FROM muzi;";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)){
foreach($product_id as $id){
if($row['ID'] == $id){
echoItem($row['fotografia'],$row['price'],$row['znacka'],$row['konkretne'],$size);
$fp = $fp + intval($row['price']);
}
}
}
}else{
echo "<h5>Cart is empty</h5>";
}
?>
<h2 class="h2-cart-item">PRICE: <?php $fp;?> €</h2>
</section>
function echoItem($productIMG, $productPrice, $znacka, $typ_oblecenia){
$product = "
<article class='clearfix'>
<img src='../img/$productIMG' alt='hihi' style='width: 10%;'>
<div class='info-text-cart'>
<p>specific type: $typ_oblecenia</p>
<p>Brand: $znacka</p>
<button><i class='fas fa-times'></i></button>
</div>
<div class='important-info-cart'>
<p>Price: $productPrice €</p>
<p>quantity: 1</p>
</div>
</article>
";
echo $product;
}
ps:我在打字方面拥有一切权利。我只是将其中涉及的一些内容翻译成英文,这样更有意义。
$fp 从未如前所述声明过。
如果您将其声明为全局(或非全局),您应该能够在第二个代码块上使用它,您尝试时没有看到任何内容的原因是您忘记了 echo它.
一个有效的例子是:
<section class="cart">
<?php
$fp = 0;
if(isset($_SESSION['cart'])){
$product_id = array_column($_SESSION['cart'],'product_id');
$sql = "SELECT * FROM muzi;";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)){
foreach($product_id as $id){
if($row['ID'] == $id){
echoItem($row['fotografia'],$row['price'],$row['znacka'],$row['konkretne'],$size);
$fp = $fp + intval($row['price']);
}
}
}
}else{
echo "<h5>Cart is empty</h5>";
}
?>
<h2 class="h2-cart-item">PRICE: <?php echo $fp;?> €</h2>
</section>