我有一个名为ProductDetails
的班级。我在这个类中有一堆方法应该返回一个值(如果在类中调用该方法)或者应该回显它,如果该方法是作为ajax调用的结果调用的。
我的ajax处理程序是一个名为gateway.php
的文件。我在其中执行以下操作:
$p = new ProductDetails($productId);
$p->getRecentProductFeedback();
现在在ProductDetails
班级中,getRecentProductFeedback()
会生成一系列反馈数据。我用它做的是:
public function getRecentProductFeedback()
{
//...code to get recent feedback as array
$this->echoReturn($feedbackArray);
}
echoReturn()
函数用于处理是否应回显或返回结果(基于调用是否为AJAX)
public function echoReturn($data)
{
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH'])
&& strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
if(is_array($data))
{
echo json_encode($data);
}
else
{
echo $data;
}
}
else
{
return $data;
}
}
这很好用。现在我的问题是,在我的课程中,我有另一个方法,getSimilarProducts()
(我的网关也称它)需要调用getRecentProductFeedback()
。
所以这个ajax调用的gateway.php
是:
$p = new ProductDetails($productId);
$p->getSimilarProducts();
在ProductDetails类中:
public function getSimilarProducts()
{
//...code to get similar product and then..
$this->getRecentProductFeedback();
}
问题是,在上面调用getRecentProductFeedback时,echoReturn()
总是回显数据,但我希望它被返回..
如何在最小程度中断代码的情况下处理此问题? :(
因为我有很多函数最终会echoReturn
...理想情况下我希望函数可以调整,这样如果echoReturn调用是在类中进行的,它总是会返回其他函数它呼应。
有没有办法实现这个目标?提前谢谢!