Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] ovjekt var in class zuweisen (https://www.delphipraxis.net/129837-%5Bphp%5D-ovjekt-var-class-zuweisen.html)

ghost007 26. Feb 2009 14:29


[PHP] ovjekt var in class zuweisen
 
Seit ein paar tagen code ich nun ein wenig OOP mit php rum, jedoch bin ich auf ein problem gestoßen.
Ich hab mir eine mysql class gebaut, wie die intern aussieht ist nich von belang. Jedoch hab ich eine andere class, die über die mysql class auf die DB zugreifen soll. Mein problem ist nun, dass ich egtl nur einmal ein mysql objekt erstellen will, innerhalb der class und nicht in jeder function ein neues erstellen muss.

Der code schaut momentan wie folgt aus:
Code:
 class mysql{...}
 class blubb{
  function a() { 
   $sql = new mysql;
   $sql->bla();
   [...]
  }
  function b() { 
   $sql = new mysql;
   $sql->bla();
   [...]
  }
  function c() { 
   $sql = new mysql;
   $sql->bla();
   [...]
  }
 }
Der funktioniert so auch, aber ich bin nich glücklich damit. Ich hätte gern eine lösung di in etwas so aussieht:
Code:
 class mysql{...}
 class blubb{
  $sql = new mysql;
  function a() { 
   //$sql = new mysql;
   $sql->bla();
   [...]
  }
  function b() { 
   //$sql = new mysql;
   $sql->bla();
   [...]
  }
  function c() { 
   //$sql = new mysql;
   $sql->bla();
   [...]
  }
 }
Jedoch sagt er mir bei der unteren version, dass der variable $sql kein neues mysql objekt zugeordnet werden kann. Warum ? Bzw wie löse ich das am besten/elegantesten?

Danke schonmal :)

tomsson74 26. Feb 2009 14:49

Re: [PHP] ovjekt var in class zuweisen
 
Du kannst in der Klasse "blubb" eine Funktion implementieren, die ein Objekt erstellt oder das gazne aber im Konstruktor von "blubb" machen. Das könnte z.b so ausehen (PHP 5) :

Code:
class blubb
{
  private $sql = NULL;

  public function __construct()
  {
    $this->sql = new mysql;
  }

  function a()
  {
   $sql->bla();
   [...]
  }

  function b()
  {
   $sql->bla();
   [...]
  }

  function c()
  {
   $sql->bla();
   [...]
  }
}

ghost007 26. Feb 2009 14:51

Re: [PHP] ovjekt var in class zuweisen
 
mh, so hab ich das auch schonal versucht, wobei ich dann mit verwundern festgestellt hab, dass mein php5 space was gegen das private hat ... irwie komisch oO

tomsson74 26. Feb 2009 14:55

Re: [PHP] ovjekt var in class zuweisen
 
Vielleicht hast Du gar kein PHP5 oder es ist nicht aktiviert. Alternativ kannst Du es auch mit PHP4 probieren:

Code:
class blubb
{
  var $sql;

  function blubb() // entspricht dem Konstruktor
  {
    $this->sql = new mysql;
  } 
  (...)

ghost007 26. Feb 2009 15:01

Re: [PHP] ovjekt var in class zuweisen
 
äußerst komisch, ich bilde mir ein, ich hätte das so gestern auch schon probiert ... naja, nun gehts. Vielen dank :)

mquadrat 26. Feb 2009 15:06

Re: [PHP] ovjekt var in class zuweisen
 
Wenn er am private meckert müsste auf deinem Webspace ein PHP 4 laufen. Wenn du das DB Objekt nur einmal erstellen willst, kannst du mit dem Suchbegriff "Singleton" mal eine Suchmaschine deiner Wahl quälen.

tomsson74 26. Feb 2009 15:13

Re: [PHP] ovjekt var in class zuweisen
 
Zitat:

Zitat von ghost007
äußerst komisch, ich bilde mir ein, ich hätte das so gestern auch schon probiert ... naja, nun gehts. Vielen dank :)

Na ja, gestern, einen Tag nach Faschingsdienstag und so ... :-D :-D :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz