如何在symfony中创建循环或更短的代码

时间:2015-04-29 18:45:55

标签: php symfony symfony-1.4

我有以下代码

$cp = new Criteria();
$cp->add(ProductBrandServicePeer::BIZORG_ID, $bizorg->getBizorgId());  
$cp->add(ProductBrandServicePeer::TYPE_ID, 1);                           
$cp_count = ProductBrandServicePeer::doCount($cp);
$cs = new Criteria();
$cs->add(ProductBrandServicePeer::BIZORG_ID, $bizorg->getBizorgId());  
$cs->add(ProductBrandServicePeer::TYPE_ID, 3);
$cs_count = ProductBrandServicePeer::doCount($cs);
$cb = new Criteria();
$cb->add(ProductBrandServicePeer::BIZORG_ID, $bizorg->getBizorgId());  
$cb->add(ProductBrandServicePeer::TYPE_ID, 2);                      
$cb_count = ProductBrandServicePeer::doCount($cb); 

我想缩短它或制作一个循环。 我在想这样的事情:

$cb->add(ProductBrandServicePeer::TYPE_ID, array(1,2,3);

但是我如何获得cp_count,cs_count和cb_count变量?

1 个答案:

答案 0 :(得分:2)

要在代码中稍后使用相同的变量,请使用变量变量。 :d

    foreach (['cp' => 1, 'cs' => 3, 'cb' => 2] as $var => $typeId) {
        $$var->add(ProductBrandServicePeer::BIZORG_ID, $bizorg->getBizorgId());
        $$var->add(ProductBrandServicePeer::TYPE_ID, $typeId);
        ${$var.'_count'} = ProductBrandServicePeer::doCount($$var);
    }