login  Naam:   Wachtwoord: 
Registreer je!
 Forum

klasse in klasse gebruiken, geen relatie met elkaar

Offline Raze - 06/08/2011 17:16 (laatste wijziging 06/08/2011 17:16)
Avatar van RazePHP beginner Hallo,

wat ik wil doen:

$this->dbc = new mysqli(...). Dus $this->dbc bevat dan de database verbinding.

Hoe spreek ik nu in de klasse "database" de andere klassefuncties van de klasse "MySQLi" aan?

Dit werkt niet:
$this->dbc->host_info();

(ik dacht dat wanneer bv $link = new mysqli(...), en dan $link->host_info(); dat werkt wel, dat dit ook zo zou zijn in klasses. Maar dus niet).

Ik heb ook al geprobeerd om er een child-klasse van te maken (parent = MySQLi-klasse).

  1. <?php
  2.  
  3. class database(){
  4. public $dbc;
  5.  
  6. public function connect($hostname,$username,$password,$database){
  7. return $this->dbc = new mysqli($hostname,$username,$password,$database) ? true : false;
  8. }
  9.  
  10. public function hostInfo(){
  11. echo $this->dbc->host_info(); // van mysqli host_info(); --> HIER WERKT HET NIET
  12. }
  13. }
  14. ?>

3 antwoorden

Gesponsorde links
Offline Martijn2008 - 06/08/2011 19:51
Avatar van Martijn2008 PHP beginner Door overerving op de database klasse te doen. In je nieuwe klasse kun je de waarde in dbc op dezelfde manier benaderen zoals je dat in de database klasse al deed.

  1. <?php
  2.  
  3. class YourClassName extends database
  4. {
  5. // Hier je code
  6. }
  7.  
  8. ?>
Offline Tuinstoel - 09/08/2011 10:31
Avatar van Tuinstoel PHP expert Wat misschien ook wel interessant is in dit geval (met database klasses) is het gebruik van een Singleton design pattern (http://php.net/manual/en/language.oop5.patterns.php example #2). Dan is de aanroep heel simpel vanuit elke klasse; bijv: $db = Database::Instance();
Offline ThAlmighty - 09/08/2011 10:50
Avatar van ThAlmighty HTML beginner Ik wil niet muggenziften, maar dit mag niet:
  1. class database(){


Een class is geen functie dus je dient het zo te schrijven:
  1. class database {


Lost dit probleem niet op, maar wel je toekomstige alvast ;)
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.207s