目前,我正试图尽可能多地清理我所在公司网站的代码,而不需要完全重写(比如删除诸如// 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中,应该使用文件a中的$product变量,但是由于我们的结构和文件b之间包含的方式,a文件中的$product被替换为b文件中循环中$product的最后一个值。
有没有任何方法来解决这个不使用使用两个不同的变量名称或移动代码?
发布于 2018-12-03 15:25:44
就像欺骗说的:没有真正的..。但你可以这么做:
保留文件a的原样。
更改文件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。
https://stackoverflow.com/questions/53596474
复制相似问题