繁体   English   中英

OOP php方法-在对象内部传递变量或从对象内部获取变量

[英]OOP php method - pass variables in or get from inside object

我是OOP的新手,并编写了一个产品课程。 一切工作正常,但我不确定此类中以下哪个版本的方法最好?

第一个从对象内部获取变量,第二个将变量传递到类中。 两者都可以。 我最初将其作为第一个版本,但似乎运行缓慢,然后将其更改为第二个版本。

 public function getProductURLstart(){  

    $select = "SELECT l.URL, p.id FROM logins AS l
    INNER JOIN Pages AS p ON l.id = p.clientID 
    WHERE l.id = '$this->skID' AND p.productPage = 1";

    $res = mssql_query($select);
    $r = mssql_fetch_row($res);     

    $url = trim($r[0]); 
    $page_id = $r[1];

    return  $url .'/index.aspx?pageID='. $page_id . '&prodID=$this->prodID';

}

要么

 static function getProductURLstart($skID, $prodId){    

    $select = "SELECT l.URL, p.id FROM logins AS l
    INNER JOIN Pages AS p ON l.id = p.clientID 
    WHERE l.id = '$skID' AND p.productPage = 1";

    $res = mssql_query($select);
    $r = mssql_fetch_row($res);     

    $url = trim($r[0]); 
    $page_id = $r[1];

    return  $url .'/index.aspx?pageID='. $page_id . '&prodID=$prodId';

}

如果此类的实例是针对单个产品的,则请使用第一种方法,因为如果在构造类时设置了它们,则没有理由将其作为参数传递。

否则,如果这不仅仅用于产品,那么第二种方法将是您的最佳选择。 因为您不必每次需要获取产品URL时都为skID和prodID调用和设置方法。

这取决于,如果您打算给模型提供一些功能,例如使它们像活动记录一样,则可以将其放入类中并使用该类的成员。 此外,您是否有充分的理由使用静态函数? 如果要应用OOP,则必须将责任赋予有意义的类,模型不应同时获取数据和进行重定向。

我会和第一个在一起。 我一直在开发应用程序,尝试使用可以使用的static methods较小的static methods并始终使用attributes ,避免通过function parameters发送attributes

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM