我想要做的是,我需要生成一个从中询问给定产品的所有属性。我有4种不同类型的产品。其中一种产品类型是组产品,当产品是组产品时,我们需要浏览组产品的所有子产品,并询问所有子产品的属性。我不希望基于产品类型重复代码,因此尝试使用PHP Eval()函数在需要时启动和关闭循环。但有些人如何不工作,有人可以请我帮忙吗?
这是我的代码,
//To Get Product Information we will call getProductInfo function
$arrProdInfo = getProductInfo($prodId);
$pName = $arrProdInfo['name'];
$pCode = $arrProdInfo['code'];
$pType = $arrProdInfo['producttype'];
//Define two Empty variable in which we will store the string to evaluate through PHP Eval() function
$topStr1 = "";
$botStr1 = "";
//If the product type is G(Group Product) then we need to loop through all the products within this group
if ($pType == "G") {
//To fetch all the products within a group product we will call getGroupProd function
$rsltGroupProd = getGroupProd($prodId);
//Set the first string to star the loop
$topStr1 = "while($rowGroupProd = $rsltGroupProd->fetchAssoc()){
$prodId = $rowGroupProd['relproductid'];
if(!is_numeric($prodId)) $prodId = 0;
$pName = $rowGroupProd['name'];
$pCode = $rowGroupProd['code'];
$pType = $rowGroupProd['producttype'];
";
//Set second string to close the loop
$botStr1 = "}";
}
//Eval() should start the loop if it's a Group Product else will not do noting
eval($topStr1);
//A big form to fetch all the attributes of product will be generated here
//Eval() should end the loop if it's a Group Product else will not do noting
eval($botStr1);
答案 0 :(得分:1)
您应该将逻辑封装在函数中,并将产品类型作为参数传递。这样就不需要你的eval()'ed代码。
答案 1 :(得分:0)
感谢大家的回复。
目前我正在将所有产品都放在一个阵列中。我给定的产品不是组产品,阵列只包含一个产品&如果给定的产品是组产品,则该阵列将包含该组产品的所有子产品。然后将导航到数组以生成一个从中请求数组中所有产品的属性...
但是在时间允许的情况下,我还想和Eval()做一些R& D ......
再次感谢, ..的Ekta