是否可以在函数内部获取这些值并使用函数之外的值 这是我的代码:
<?php
function cart() {
foreach($_SESSION as $name => $value){
if ($value>0) {
if (substr($name, 0, 5)=='cart_') {
$id = substr($name, 5, (strlen($name)-5));
$get = mysql_query('SELECT id, name, price FROM products WHERE id='.mysql_real_escape_string((int)$id));
while ($get_row = mysql_fetch_assoc($get)) {
$sub = $get_row['price']*$value;
echo $get_row['name'].' x '.$value.' @ £'.number_format($get_row['price'], 2).' = £'.number_format($sub, 2).'<a href="cart.php?remove='.$id.'">[-]</a> <a href="cart.php?add='.$id.'">[+]</a> <a href="cart.php?delete='.$id.'">[Delete]</a><br />';
}
}
$total += $sub ;
}
}
}
?>
现在我的问题是如何才能获得$total
的价值?
我想在功能上使用该值,
我有2个功能i购物车和1折扣
我试过返回$ total; (功能内部)
例如
$final = cart () - discount ();
echo $final;
它的echo out buth函数echo代码,其中函数内部不进行任何数学运算。
答案 0 :(得分:3)
您需要“返回”该值。请参阅entry in the PHP manual for this。基本上,return
表示“立即退出此功能”。或者,您也可以提供函数可以返回的一些数据。
只需使用return
声明:
<?php
function cart()
{
foreach ($_SESSION as $name => $value) {
if ($value > 0) {
if (substr($name, 0, 5) == 'cart_') {
$id = substr($name, 5, (strlen($name) - 5));
$get = mysql_query('SELECT id, name, price FROM products WHERE id=' . mysql_real_escape_string((int)$id));
while ($get_row = mysql_fetch_assoc($get)) {
$sub = $get_row['price'] * $value;
echo $get_row['name'] . ' x ' . $value . ' @ £' . number_format($get_row['price'], 2) . ' = £' . number_format($sub, 2) . '<a href="cart.php?remove=' . $id . '">[-]</a> <a href="cart.php?add=' . $id . '">[+]</a> <a href="cart.php?delete=' . $id . '">[Delete]</a><br />';
}
}
$total += $sub;
}
}
return $total;
}
?>
答案 1 :(得分:0)
在函数
中写return $total;
答案 2 :(得分:0)
如果你将return $total
放在函数的最末端(就在最后一个大括号之前),你应该能够使用结果。
答案 3 :(得分:0)
您可以使用全局范围。即
$s = 1;
function eee()
{
global $s;
$s++;
}
echo $s;
你可以得到var / return var ...如果你需要返回更多的1个值 - 使用数组
function eee( $s)
{
return $s++;
}
eee($s=1);
echo $s;
首选2。导致全局范围操作 - 当app变大时可能会导致问题。