目前,我正在尝试清理我所工作公司网站的尽可能多的代码,而不必完全重写(诸如删除诸如// declare variables
之类的愚蠢注释,清除变量命名,一致性等)。 )。该代码非常混乱且可怕,它使用了很多包含在内的文件,并且在文件之间使用了变量,这实在令人讨厌。
问题是,重命名变量实际上很容易造成很多麻烦。我目前有以下问题:
在文件a
中,我有一个查询,看起来像这样:
$getProductSql = 'QUERY';
$getProduct = $db->prepare($getProductSql);
// some bind values etc.
$getProduct->execute();
$product = $getProduct->fetch(PDO::FETCH_ASSOC);
现在,该文件包含在索引中之后,文件b
将被包含,其中包含以下内容:
$getProductsSql = 'QUERY';
$getProducts = $db->prepare($getProductsSql);
// some bind values etc.
$getProducts->execute();
foreach ($getProducts->fetchAll(PDO::FETCH_ASSOC) as $product) {
// some code
}
包含该文件之后,将包含文件c
,该文件包含以下内容:
if ($product['COLUMN'] === '1')
在文件c
中,应使用文件$product
中的a
变量,但是由于我们的结构以及文件b
被包含在{{1文件$product
中的}}替换为文件a
中循环中的$product
的最后一个值。
有什么办法可以使用两个不同的变量名或移动代码来解决问题?
答案 0 :(得分:1)
正如deceze所说:确实没有……但是您可以这样做:
按原样保留文件。
像这样更改文件b:
$getProductsSql = 'QUERY';
$getProducts = $db->prepare($getProductsSql);
// some bind values etc.
$getProducts->execute();
$p[] = $product;
foreach ($getProducts->fetchAll(PDO::FETCH_ASSOC) as $product) {
// some code
$p[] = $product
}
$product = $p;
文件c如下:
if ($product[0]['COLUMN'] === '1')
这有点令人困惑,而且不是很好。是的,这就是为什么您应该使用函数...
或者:如果您不再需要文件c中的文件b中的产品数组,则也可以简单地执行以下操作:
文件b:
$getProductsSql = 'QUERY';
$getProducts = $db->prepare($getProductsSql);
// some bind values etc.
$getProducts->execute();
$p = $product;
foreach ($getProducts->fetchAll(PDO::FETCH_ASSOC) as $product) {
// some code
}
$product = $p;
在这种情况下:无需更改文件c