在php中嵌套类

时间:2010-05-13 23:03:45

标签: php oop class

这是我想要嵌套的样本类。

include("class.db.php");

class Cart {

function getProducts() {

//this is how i do it now. 
//enter code here`but i dont want to redeclare for every method in this class. 
//how can i declare it in one location to be able to use the same variable in every method?
$db = new mysqlDB;


$query = $db->query("select something from a table");
return $query

}

}

3 个答案:

答案 0 :(得分:12)

利用财产。

class Cart {

    private $db;

    public function __construct($db) {
        $this->$db = $db;
    } 

    public function getProducts() {
        $query = $this->db->query( . . .);
        return $query;
    }

}

您将在类之外创建数据库对象(松散耦合FTW)。

$db = new MysqlDb(. . .);
$cart = new Cart($db);

答案 1 :(得分:0)

将每个方法/函数的公共代码隔离到另一个私有内部方法/函数中。

如果你需要让对象在创建时自动运行一次,这就是__construct的用途。

答案 2 :(得分:-1)

你可以有这样的东西

<?php
     class cart 
    {
          protected $database;

          function __construct()
          {
                $this->database = new mysqlDB;
          }

          function getProducts()
          {
               $this->database->query("SELECT * FROM...");
          }
    }
?>

__ construct是实例化类时调用的函数。