php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.03.2005, 19:01  
Gast
 
Beiträge: n/a
Standard Klassen Frage!!!

Hi,

hab eine Frage zu Klassen!
Kann ich in einer Klasse eine andere Klasse verwenden?
Ich möchte nämlich eine Bildupload-Klasse coden und dabei will ich den Bildpfad in die Datenbank speichern!
Die Datenbank Klasse ist aber eine eigenständige Klasse!

Oder soll ich mir dir Bildpfade lieber als ein Array zurückgeben lassen?
Und dann auf dem Server speichern?

Hat jemand Erfahrung mit sowas?
Was ist am einfachsten und schnellsten?

Danke im Vorraus!

Hier lernt man sehr viel! Ich danke euch!
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.03.2005, 19:23  
Gast
 
Beiträge: n/a
Standard Re: Klassen Frage!!!

Zitat:
Zitat von alter mann
Kann ich in einer Klasse eine andere Klasse verwenden?
Blöde Frage. Woher soll man wissen, was Du kannst?
PHP-Code:
<?php
class a
{
  function 
()
  {
    echo 
'blubb';
  }
}

class 
b
{
  var 
$a;
  function 
b()
  {
    
$this->= & new a();
  }
}

$temp = & new b();
?>
  Mit Zitat antworten
Alt 04.03.2005, 19:27  
Erfahrener Benutzer
 
Registriert seit: 19.11.2003
Beiträge: 172
BastianX75
Standard

Hi,

das geht auf jeden fall: entweder mit Verebung oder wie du es warscheinlich meinst:
PHP-Code:
<?php
class bilduploadClass {
  var 
$datenbank;
  
  function 
bilduploadClass() {
    
$this->datenbank = new DatenbankClass();
  }
  
  function 
upload() {
    
$pfad $this->datenbank->hohlePfad();
    
// usw...
  
}
}

//Oder ...
class bilduploadClass2 {

  function 
upload() {
    
$pfad DatenbankClass::hohlePfad();
    
// usw...
  
}
}
?>
__________________
Schönen Gruß
Sebastian

Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie braucht.
BastianX75 ist offline   Mit Zitat antworten
Alt 04.03.2005, 19:34  
Gast
 
Beiträge: n/a
Standard

Hi meikel,

ich will nicht beide Klassen zusammen in einem Script haben, sondern
beide als einzelne Klassen!

Zum Beispiel:
Klasse A wäre meine Datenbank-Klasse. Sie stellt Verbindung und Abfragen durch!

PHP-Code:
<?php
class 

  function 
() 
  { 
    echo 
'blubb'
  } 

$a = new a();
?>

Klasse B wäre meine Bildupload-Klasse

PHP-Code:
<?php
class 

  function 
b() 
  { 
    
$a->sql =  'INSERT INTO tbl1 ()...';
 ....
....
 
  } 

?>
Ist das möglich?

Danke meikel!
  Mit Zitat antworten
Alt 04.03.2005, 19:36  
Gast
 
Beiträge: n/a
Standard

@Bastian

Ja genau das meine ich!
Wie vererbe ich was?

merci
  Mit Zitat antworten
Alt 04.03.2005, 19:38  
Gast
 
Beiträge: n/a
Standard

OH hab schon kapiert wie es geht!

COOL
  Mit Zitat antworten
Alt 04.03.2005, 19:42  
Erfahrener Benutzer
 
Registriert seit: 19.11.2003
Beiträge: 172
BastianX75
Standard

Vererbung geht (ganz grob) so:
PHP-Code:
<?php
class DatenbankClass {

  function 
hohlePfad() {
    return 
'/pfad/wohin/auch/immer';
  }
}

class 
bilduploadClass extends DatenbankClass {
  
  function 
upload() {
    
$pfad $this->hohlePfad();
    
// usw...
  
}
}
?>
Am besten mal durchlesen:
PHP4
http://de3.php.net/manual/de/language.oop.php
PHP5
http://de3.php.net/manual/de/language.oop5.php
__________________
Schönen Gruß
Sebastian

Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie braucht.
BastianX75 ist offline   Mit Zitat antworten
Alt 04.03.2005, 20:07  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von alter mann
ich will nicht beide Klassen zusammen in einem Script haben, sondern beide als einzelne Klassen!
Seit der Erfindung von require/include ist das kein Problem.
Zitat:
Ist das möglich?
Jou.

Es gibt da generell zwei unterschiedliche Möglichkeiten.
1. Du erstellst innerhalb der Bilder-Klasse eine Instanz der DB Klasse. Sinnvollerweise erledigt man das im Konstruktor (Beispiel für PHP4):
PHP-Code:
<?php
# Die Zugangsadten hast Du als Konstanten definiert.
# Konstanten sind innerhalb von Funktionen und Klassen auch gültig.
# Das spart Arbeit...

class bilder
{
  var 
$db false;
  var 
$table false;
  function 
bilder($table 'bilder')
  {
     if (! 
$this->db = & new db(DBHOSTDBUSERDBPASSDBNAME))
        die(
'Da ging was schief); # Ich weiß nicht, wie Deine DB Klasse aussieht
     $this->table = $table;
   }

   function beispiel($liste = '
*', $name='', $value='')
   {
       if (! empty($name) AND ! empty($value))
         $sql = sprintf("SELECT %s FROM %s WHERE %s ) '
%s'",
            $liste, $this->table, $name, $value);
       else
         $sql = sprintf('
SELECT %s FROM %s,
            
$liste$this->table);
       return = 
$this->db->query($sql);
   }
}
# usw.
?>
2. Du übergibst die Referenz auf die DB Klasse, wenn Du die Instanz der Bilder Klasse erstellst.

PHP-Code:
<?php
class bilder
{
  var 
$db false;
  var 
$table false;
  function 
bilder(&$db$table 'bilder')
  {
     
$this->db = &$db;
     
$this->table $table;
   }
# Rest wie bei 1.
}

$db = & new db (.....)
$bilder = & new bilder(&$db'bilder');
# usw.
?>
  Mit Zitat antworten
Alt 04.03.2005, 20:24  
Gast
 
Beiträge: n/a
Standard

Zu Punkt 2 noch eine Frage:
warum & bei:
PHP-Code:
<?php
$db 
=  &  new db (.....) 
?>
Und generell die & Zeichen?

Mit %2 meinst du Platzhalter?
  Mit Zitat antworten
Alt 04.03.2005, 20:32  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von alter mann
Zu Punkt 2 noch eine Frage:
warum & bei:
PHP-Code:
<?php
$db 
=  &  new db (.....) 
?>
Das ist ein kleines Fehlerchen bei PHP4: man muß die Referenz auf die Instanz speichern, weil sonst die Gefahr besteht, mit einer Kopie zu arbeiten. Wäre bei einer DB Klasse nicht gerade die beste Lösung. <g>

Bei PHP5 ist das etwas anders.
Zitat:
Mit %2 meinst du Platzhalter?
Nicht %2 sondern %s. Das ist ein String-Platzhalter für sprintf(). Lies mal im Handbuch nach.

Ich verwende in einfachen Scripten gern sprintf() und printf(), weil es übersichtlicher ist und man sich jede Menge an Escape-Orgien erspart.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Variablen in Klassen resetet oceanblue PHP Tipps 2008 5 15.10.2008 14:30
Tool um (Spiel)Klassen zu erzeugen Martin13 PHP-Fortgeschrittene 6 05.09.2007 02:25
Klassen sinnvoll nutzen, Grundlegendes nikosch PHP-Fortgeschrittene 1 30.09.2006 22:08
Fragen zu Klassen Kein Genie PHP Tipps 2006 3 08.05.2006 11:25
Sessions an includete Klassen übergeben Dr_Enquinox PHP Tipps 2006 4 29.04.2006 10:25
mit html klassen definieren und in php ausgeben PHP-Fortgeschrittene 4 16.01.2006 10:31
[Erledigt] PHP 4 - Klassen? patr1k PHP Tipps 2005 10 18.11.2005 10:48
klassen und methoden anderer klassen in methoden.... PHP Tipps 2005 17 25.05.2005 09:46
Performence Frage PHP-Fortgeschrittene 10 06.05.2005 19:00
Frage zu einem Editformular PHP Tipps 2005 3 25.04.2005 14:58
Klassen PHP Tipps 2005 5 09.04.2005 18:51
Klassen in Klassen verwenden PHP Tipps 2005 5 23.02.2005 14:08
klassen: ganz dumme frage PHP Tipps 2005 8 23.01.2005 13:32
Klassen in PHP PHP Tipps 2004 4 12.08.2004 13:17


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.