这是我想要嵌套的样本类。
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
}
}
答案 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是实例化类时调用的函数。