Giv den videre til selve metoden
Du skal videregive databaseobjektet til metoden, fordi de ikke er i samme omfang:
function runQuery($mysqli)
og kald det som
$a = new theClass;
$a->runQuery($mysqli);
Giv det videre til konstruktøren
Hvis din klasse foretager mange databasekald, kan du blot sende det i konstruktøren og gemme det som en privat variabel til senere brug:
class theClass
{
private $mysqli;
function __construct($mysqli) {
$this->mysqli = $mysqli;
}
function runQuery()
{
$query = "SELECT col_1 FROM db.table";
$stmt = $this->mysqli->prepare($query);
stmt->execute();
$stmt->bind_result($r);
while($stmt->fetch())
{
echo $r . "<br>";
}
}
};
og kald det som
$a = new theClass($mysqli);
$a->runQuery();
Begge metoder gør det klart, at din klasses afhængighed er et mysqli-objekt, hvilket er godt for fremtidig vedligeholdelse og læsbarhed.