PHP 正确读取我的购物车数组?
PHP reading my array of my shopping cart correctly?
我正在制作一个新手网店,但遇到了一个问题。我写了一个函数来简单地绘制一个项目,如果它被定义的话。 (所以它会绘制带有描述的图像,只有当该项目实际添加到我的购物车时)。
请注意,这显然不是最好的方法。但它应该有效。
正在设置我的项目。仅当它们在开始时实际定义时才有效。
$item1 = $_SESSION['item1'];
$item2 = $_SESSION['item2'];
$item3 = $_SESSION['item3'];
$item4 = $_SESSION['item4'];
$item5 = $_SESSION['item5'];
正在调用我的函数:
ValidateCart($item1, 'item1_name', 'item1_size', 'item1_price', 'item1_url');
我的函数:
function ValidateCart($item, $itemname, $itemsize, $itemprice, $itemurl)
{
$arr = array($item1, $item2, $item3, $item4, $item5);
if (in_array($item, $arr)) {
echo '<br><hr>';
echo $_SESSION[$itemname]; echo '<br>';
echo $_SESSION[$itemsize]; echo '<br>';
echo '€ '; echo $_SESSION[$itemprice]; echo '<br><br>';
$itemurl1 = $_SESSION[$itemurl];
$itemurl2 = str_replace('url(', 'http://vintagefairytale.esy.es/', $itemurl1);
$itemurl3 = str_replace(')', '', $itemurl2);
echo '<img src='; echo $itemurl3; echo '></img>';
echo '<hr>';
}
}
基本上,在我的 ValidateCart()
中,我正在创建一个包含所有可能项目的数组,如果一个项目与我的数组匹配,它将继续。然而,事实并非如此。
如果我将 if (in_array($item, $arr))
更改为 if (in_array($item1, $arr))
它会起作用,但这不是我想要实现的目标。
我需要它在一个函数中工作,但对我来说它没有意义,当我用合适的参数调用函数时,它不会显示。但是如果我在我的函数中进行检查,它就可以工作。因此失去了使用函数的意义。
已解决
问题是我的 $item1 $item2 $item3... 不会在范围内使用,不知道为什么,但这就是问题所在。在我的函数中调用会话已经解决了它。感谢您的帮助!
为什么不在函数外使用 $arr 而在函数中用作参数。
$arr = array($item1, $item2, $item3, $item4, $item5);
function ValidateCart($item, $itemname, $itemsize, $itemprice, $itemurl, $arr)
{
if (in_array($item, $arr)) {
echo '<br><hr>';
echo $_SESSION[$itemname]; echo '<br>';
echo $_SESSION[$itemsize]; echo '<br>';
echo '€ '; echo $_SESSION[$itemprice]; echo '<br><br>';
$itemurl1 = $_SESSION[$itemurl];
$itemurl2 = str_replace('url(', 'http://vintagefairytale.esy.es/', $itemurl1);
$itemurl3 = str_replace(')', '', $itemurl2);
echo '<img src='; echo $itemurl3; echo '></img>';
echo '<hr>';
}
}
function ValidateCart($item, $itemname, $itemsize, $itemprice, $itemurl) {
$arr = array($_SESSION['item1'], $_SESSION['item2'], $_SESSION['item3'], $_SESSION['item4'], $_SESSION['item5']);
if (in_array($item, $arr)) {
echo '<br><hr>';
echo $_SESSION[$itemname]; echo '<br>';
echo $_SESSION[$itemsize]; echo '<br>';
echo '€ '; echo $_SESSION[$itemprice]; echo '<br><br>';
$itemurl1 = $_SESSION[$itemurl];
$itemurl2 = str_replace('url(', 'http://vintagefairytale.esy.es/', $itemurl1);
$itemurl3 = str_replace(')', '', $itemurl2);
echo '<img src='; echo $itemurl3; echo '></img>';
echo '<hr>';
}
}
您的 $item1 等超出了函数的范围。
我正在制作一个新手网店,但遇到了一个问题。我写了一个函数来简单地绘制一个项目,如果它被定义的话。 (所以它会绘制带有描述的图像,只有当该项目实际添加到我的购物车时)。
请注意,这显然不是最好的方法。但它应该有效。
正在设置我的项目。仅当它们在开始时实际定义时才有效。
$item1 = $_SESSION['item1'];
$item2 = $_SESSION['item2'];
$item3 = $_SESSION['item3'];
$item4 = $_SESSION['item4'];
$item5 = $_SESSION['item5'];
正在调用我的函数:
ValidateCart($item1, 'item1_name', 'item1_size', 'item1_price', 'item1_url');
我的函数:
function ValidateCart($item, $itemname, $itemsize, $itemprice, $itemurl)
{
$arr = array($item1, $item2, $item3, $item4, $item5);
if (in_array($item, $arr)) {
echo '<br><hr>';
echo $_SESSION[$itemname]; echo '<br>';
echo $_SESSION[$itemsize]; echo '<br>';
echo '€ '; echo $_SESSION[$itemprice]; echo '<br><br>';
$itemurl1 = $_SESSION[$itemurl];
$itemurl2 = str_replace('url(', 'http://vintagefairytale.esy.es/', $itemurl1);
$itemurl3 = str_replace(')', '', $itemurl2);
echo '<img src='; echo $itemurl3; echo '></img>';
echo '<hr>';
}
}
基本上,在我的 ValidateCart()
中,我正在创建一个包含所有可能项目的数组,如果一个项目与我的数组匹配,它将继续。然而,事实并非如此。
如果我将 if (in_array($item, $arr))
更改为 if (in_array($item1, $arr))
它会起作用,但这不是我想要实现的目标。
我需要它在一个函数中工作,但对我来说它没有意义,当我用合适的参数调用函数时,它不会显示。但是如果我在我的函数中进行检查,它就可以工作。因此失去了使用函数的意义。
已解决
问题是我的 $item1 $item2 $item3... 不会在范围内使用,不知道为什么,但这就是问题所在。在我的函数中调用会话已经解决了它。感谢您的帮助!
为什么不在函数外使用 $arr 而在函数中用作参数。
$arr = array($item1, $item2, $item3, $item4, $item5);
function ValidateCart($item, $itemname, $itemsize, $itemprice, $itemurl, $arr)
{
if (in_array($item, $arr)) {
echo '<br><hr>';
echo $_SESSION[$itemname]; echo '<br>';
echo $_SESSION[$itemsize]; echo '<br>';
echo '€ '; echo $_SESSION[$itemprice]; echo '<br><br>';
$itemurl1 = $_SESSION[$itemurl];
$itemurl2 = str_replace('url(', 'http://vintagefairytale.esy.es/', $itemurl1);
$itemurl3 = str_replace(')', '', $itemurl2);
echo '<img src='; echo $itemurl3; echo '></img>';
echo '<hr>';
}
}
function ValidateCart($item, $itemname, $itemsize, $itemprice, $itemurl) {
$arr = array($_SESSION['item1'], $_SESSION['item2'], $_SESSION['item3'], $_SESSION['item4'], $_SESSION['item5']);
if (in_array($item, $arr)) {
echo '<br><hr>';
echo $_SESSION[$itemname]; echo '<br>';
echo $_SESSION[$itemsize]; echo '<br>';
echo '€ '; echo $_SESSION[$itemprice]; echo '<br><br>';
$itemurl1 = $_SESSION[$itemurl];
$itemurl2 = str_replace('url(', 'http://vintagefairytale.esy.es/', $itemurl1);
$itemurl3 = str_replace(')', '', $itemurl2);
echo '<img src='; echo $itemurl3; echo '></img>';
echo '<hr>';
}
}
您的 $item1 等超出了函数的范围。