我正试图找到一种方法。我有这个冗长复杂的代码(下面只是一个小小的片段,例如用途),我想在同一个文件中重复使用30次(放入上下文,它是一个产品页面文件)
<a href="<?php echo $products['product_x']['url'];?>"><?php echo $products['product_x']['name'];?></a>
$products['product_x']['url']
是指多维数组,它位于单独的文件中并加载到站点的所有页面中。我想知道是否以这样的方式操纵product_x,允许我将上面的代码放在一个单独的文件中,将其包含在主产品页面上,然后将product_x
更改30次以加载所有产品。很明显,每个产品都有自己的ID。
$products['product_x']
$products <-- name of the main array
$products['product_x'] <-- each product has it's own array
$products['product_x']['url'] <-- example of information stored in the array
每个产品在此页面上的编码超过100行,因为有各种参数需要考虑。是否可以将通用代码放入文件中并每次更改值时引用它30次?
我有30个产品,我想在单个产品页面上显示。它们各自由其ID控制(例如product_1
,product_2
等。我希望每次都重复使用代码并更改这些ID。
答案 0 :(得分:0)
是的。我会将所有通用代码实际放在一个函数中,并调用函数来对产品做任何想做的事情:
function process_product($product)
{
// do whatever
return $edited_product
}
// call it:
$processed = process_product($products['product_x'] );
答案 1 :(得分:0)
如果没有看到更多的代码,我将不得不做一些假设,但它们可能会让你接近。
在我看来,您不应该为产品的每次迭代更改产品。当然,产品都具有相似的属性,可以在同一个数据库表中找到。如果没有,也许这是需要考虑的事情。如果是这样,您的解决方案的伪代码将类似于:
<?php
$products = $db->fetchAllProducts();
foreach ($products as $product):
?>
<a href="<?php echo $product['url'];?>"><?php echo $product['name'];?></a>
<?php endforeach; ?>
您可以创建一个定义产品和类的迭代器的类。好处是你可以在迭代时使用标准接口。
答案 2 :(得分:0)
是的,您可以创建一个单独的PHP文件,其功能类似于以下内容,然后在传递产品ID /名称时包含该文件任意次:
// lets say, this file is info.php
function information_for_product_named($name) {
$html = "";
$html .= "<a href='{$products['product_x']['url']}'>{$products['product_x']['name']}</a>";
// .. and so on...
echo $html;
}
现在,您可以在产品页面中执行以下操作:
require_once('info.php');
information_for_product_named('product_x');
很好,很微妙:)