0
我绝不会要求任何人重写我的代码,而是找到我可以改进它的地方,或实施更好的做法。这是该功能的简要工作方式。PHP的PDO功能,寻求一些建议
函数$Class->getTaxClass()
接受至少1个参数,它可以是单个ID,也可以是一个ID数组。它也可以不是接受它想摸像这样$Class->getTaxClass($array, 'name','tid')
所以我真的只是寻找各种方法来改善功能的代码结构/最佳做法/逻辑,这是特定的行值如下:
public function getTaxClass()
{
$arg = func_get_args();
$or = 'pa.pid = ?';
if(is_array($arg[0]))
{
$i = 1;
while($i < count($arg[0]))
{
$or .= " OR pa.pid = ?";
$i ++;
}
}
if(count($arg) == 1)
{
$pid = $arg[0];
$row = "a.*";
}
else if(count($arg > 1))
{
$pid = array_shift($arg);
$prepared_args = array();
foreach($arg as $a) {
$prepared_args[] = "a." . $a;
}
$row = implode(',', $prepared_args);
}
$stmt = _DB::init()->prepare("SELECT $row
FROM tax_class a
INNER JOIN products_to_tax_class pa
ON a.tid = pa.tid
WHERE ($or)"
);
if(is_array($arg[0]))
{
if($stmt->execute($arg[0]))
return $stmt->fetch(PDO::FETCH_ASSOC);
}
else
{
if($stmt->execute(array($pid)))
return $stmt->fetch(PDO::FETCH_ASSOC);
}
}
非常感谢!