2011-05-18 51 views
2
function recurCalc($price){ 
    $data = array(); 
    $data['recurafter'] = $price * 0.3; 
    $data['recurtrial'] = $price - ($recurafter*2); 
    return $data; 
} 
$data = recurCalc($product_price); 
view()->assign("price",$product_price); 
view()->assign("recurtrial" $data['recurtrial']);
  
view()->assign("recurafter", $data['recurafter']); 

我试图使这一功能工作,但它给我的问题:这是否有意义 - 功能?

view()->assign("recurtrial" $data['recurtrial']);
 --> view()->assign("recurtrial" $data['recurtrial']); 

我不是在阵列特别好。它放在index.php中,而smarty的东西将放在由pinnaclecart呈现的html文件中。

如果您能提供帮助,我将不胜感激。

+0

您应该永远不要切断错误消息。 – KingCrunch 2011-05-18 09:11:19

+0

@KingCrunch,你是什么意思? – joe 2011-05-18 09:14:58

+0

你有另一个问题:变量'$ recurafter'未设置。你可能意思是'$ data ['recurafter']' – Zecc 2011-05-18 09:16:22

回答

1

您的明显的问题是,你试图从一个函数返回多个值。尝试对每个值使用单独的函数:

function recurAfter($price) { return $price * 0.3; } 
function recurTrial($price) { return $price - recurAfter($price); } 

view()->assign("price", $product_price); 
view()->assign("recurtrial", recurTrial($product_price)); 
view()->assign("recurafter", recurAfter($product_price)); 
3

array是关键字,不能用作类(名称)。

$data = new Array(); 

你可能想要的是一个共同的阵列

$data = array() 

这里阅读:http://php.net/language.types.array

+0

@KingCrunch,所以如果我想将数据保存在数组中,它必须是$ data = Array()?或者它是$ data [] = Array();?对不起,我对数组感到困惑 – joe 2011-05-18 09:11:54

+1

像我写的:'$ data = array()'。用'$ data []'你可以访问数组,但是为此,它必须是数组之前;) – KingCrunch 2011-05-18 09:13:01

+1

@KingCrunch,哦好吧,array()存储数据信息,而[]允许我从数组中获取数据。得到它了。 – joe 2011-05-18 09:16:57

2

不要使用new关键字出现这种情况。

+0

你想创建一个数组。在php中,正确的语法是'$ data = array();' – Mr47 2011-05-18 09:11:47

+2

使用'new'你可以从给定的类名实例化一个新的对象。数组不是PHP中的对象。 – KingCrunch 2011-05-18 09:11:52

0

可能最好只是做

$data = Array(); 

至于功能上......很难说多少常识让断章取义,但它会奏效。

+1

不会,因为'$ price - ($ recurafter * 2); '引用了一个未设置的'$ recurafter'变量。 – Zecc 2011-05-18 09:21:56

+1

@Zecc相当如此 - $ data ['recurtrial'] = $ price - ($ data ['recurafter'] * 2) - 这会教会我在我早晨喝咖啡之前回答问题:) – Wagemage 2011-05-18 09:25:49

+0

zeec,谢谢:) – joe 2011-05-18 09:53:12

1

在PHP中声明一个数组的常用方法是

$data = array(); 

$data = array(
    'recurafter' => $price * 0.3, 
    'recurtrial' => $price - ($recurafter*2), 
); 

我觉得这是更好的:

function recurCalc($price){ 
    $recurafter = $price * 0.3; 
    $recurtrial = $price - ($recurafter*2); 

    $data = array('recurafter'=>$recurafter, 'recurtrial'=>$recurtrial); 
    return $data 
}; 
+0

啊你的例子有道理,让我试试吧 – joe 2011-05-18 09:17:47

+0

等待如何做功能以后再计算? – joe 2011-05-18 09:19:00

+1

我更改了我的代码,我想您可以使用最后一个片段 – 2011-05-18 09:20:48