php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.01.2005, 18:32  
Gast
 
Beiträge: n/a
Standard Problem mit Übergabe einer Klasse in PHP4

Hallo erstmal
Also ich habe folgendes Problem.
Ich habe die Klasse "db" und die Klasse "Template" // Ich denke die namen sind selbsterklärend

Nun mach ich mir ne neue Instanz der Klasse "db"
$dbcon = new db([Args...]);

da meine Templates in einer MySQL Tabelle liegen, muss ich innerhalb der Templateklasse die Instanz der "db" Klasse zur Verfügung haben.
Diese übergebe ich als Konstruktor-Argument. So in etwa:
$seite = new template("Templatename", $dbcon);

Nun übergibt PHP der Klasse Template ja eine Kopie der Instanz von "db", was ich will ist aber keine Kopie, sondern daseine Referenz auf dbcon übergeben wird.

wenn ich es wie folgt mache löst sich das Problem nicht, es wird nachwievor eine Kopie Übergeben:
$seite = new template("Templatename", &$dbcon);


Wie kann ich das Problem lösen?

Danke im Vorraus
benny
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 06.01.2005, 19:03  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

Also ich weiß, dass man andersrum Daten verändern kann:

PHP-Code:
function test ($var1, &$var2)
{
  
$var2 $var1;
}

$var1 'hallo';
$var2 'welt';

test ($var1$var2);

echo 
$var2// -> 'hallo' 
Also quasi das & nicht in den Funktionsaufruf, sondern in der Funktionsdeklaration. Hast du das eventuell schonmal ausprobiert?
MrNiceGuy ist offline   Mit Zitat antworten
Alt 06.01.2005, 20:13  
Gast
 
Beiträge: n/a
Standard

Hilft mir jetzt aber net weiter was mein Problem mit Klassen angeht :/
  Mit Zitat antworten
Alt 06.01.2005, 20:44  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von b3nJ4M1n
Hilft mir jetzt aber net weiter was mein Problem mit Klassen angeht :/
Hast du es denn ausprobiert? Also nicht so:

PHP-Code:
$db = new db ();
$tmpl = new template (&$db); 
sondern:

PHP-Code:
$db = new db ();
$tmpl = new template ($db); 
und in der Klasse:

PHP-Code:
class template
{
  
// [...]

  
function template (&$db)
  {
    
// [...]
  
}

MrNiceGuy ist offline   Mit Zitat antworten
Alt 06.01.2005, 21:54  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Verweise (aka Referenzen) als Parameter übergeben:
http://de2.php.net/manual/de/functions.arguments.php

Referenzen in PHP:
http://de2.php.net/references


Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum.

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines Profis. Dazu: http://www.phpfriend.de/forum/viewtopic.php?t=21431

moved to PHP - Fortgeschrittene

PS: Du übergibst Objekte und keine Klassen.
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Alt 06.01.2005, 23:20  
Gast
 
Beiträge: n/a
Standard Re: Problem mit Übergabe einer Klasse in PHP4

Zitat:
Zitat von b3nJ4M1n
Also ich habe folgendes Problem.
Ich habe die Klasse "db" und die Klasse "Template" // Ich denke die namen sind selbsterklärend
Nicht wirklich, weil Namen sind ja wie "Schall und Rauch".

Zitat:
da meine Templates in einer MySQL Tabelle liegen, muss ich innerhalb der Templateklasse die Instanz der "db" Klasse zur Verfügung haben.
Diese übergebe ich als Konstruktor-Argument. So in etwa:
$seite = new template("Templatename", $dbcon);
PHP4:
Code:
$seite = & new template("Templatename", &$dbcon);
  Mit Zitat antworten
Alt 07.01.2005, 12:13  
Gast
 
Beiträge: n/a
Standard

Also ich habe jetzt alle hier geposteten Vorschläge mal ausprobiert, und ´musste leider feststellen, das keiner Funktioniert
  Mit Zitat antworten
Alt 07.01.2005, 12:16  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

zeig und, was du 'ausprobiert' hast
imported_Ben ist offline   Mit Zitat antworten
Alt 07.01.2005, 12:56  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

Also so, wie ich es geschrieben habe mit dem & in der Funktionsdeklaration hat es bei mir funktioniert ^^. Ich kann auf das selbe Objekt zugreifen. Habe selber ausprobiert, ob es mit meiner Datenbank-Klasse klappt und es läuft einwandfrei.
MrNiceGuy ist offline   Mit Zitat antworten
Alt 08.01.2005, 20:39  
Gast
 
Beiträge: n/a
Standard

Also ich hab jetzt einfach mal alles durchprobiert xD
Folgendes Beispiel funktioniert (es wird 2 mal "GRÜN" augegeben):

Trotzdem nochma danke an alle die mir geholfen haben

PHP-Code:
<?php
class Auto {
    var 
$Farbe;

    function 
Auto($Farbe) {
        
$this->Farbe $Farbe;
    }
}

class 
Mensch {
    var 
$Hautfarbe;
    var 
$_Auto;
    
    function 
Mensch($Auto) {
        
$this->_Auto = &$Auto;
    }
}

$Fahrzeug = new Auto("ROT");
$Markus = new Mensch(&$Fahrzeug);
$Markus->_Auto->Farbe "GRÜN";

echo 
$Fahrzeug->Farbe;
echo 
$Markus->_Auto->Farbe;
?>
[/code]
  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
Problem mit Image - Klasse DER_Brain PHP Tipps 2008 0 03.12.2007 21:53
Problem mit mysql_fetch_array in Klasse PHP Tipps 2005-2 3 16.08.2005 09:14
Problem mit Sessions bei der Verwendung von flush (Php4) PHP-Fortgeschrittene 0 07.08.2005 00:36
[Erledigt] Problem mit Backslash Patrick Schwarz PHP Tipps 2005-2 5 26.07.2005 09:54
problem mit klasse zum registrieren Fraylman PHP Tipps 2005-2 5 05.07.2005 13:55
Problem mit einer rekursiven Funktion in einer Klasse ajo_silent PHP-Fortgeschrittene 6 13.06.2005 16:40
Unverständlichkeit bei dem Instanzieren einer Klasse... PHP Tipps 2005-2 2 08.06.2005 12:44
Problem beim Registrieren von Session-Variablen in Klasse zwelch PHP-Fortgeschrittene 6 18.10.2004 08:07
Apache2 und PHP4 Problem! PHP Tipps 2004 4 13.10.2004 10:06
Klasse holt sich die Klasse PHP-Fortgeschrittene 9 07.10.2004 11:53
Problem bei einer Klasse mit "hat" beziehung PHP Tipps 2004 4 06.10.2004 21:29
[Erledigt] Brauche Hilfe bei meiner ersten Klasse PHP-Fortgeschrittene 9 24.09.2004 17:09
Problem mit optionalen Parametern bei Funktion in Klasse RudiS PHP-Fortgeschrittene 6 24.09.2004 09:03
Klassenobjet in anderer Klasse benutzen inu PHP Tipps 2004 6 19.09.2004 10:58
Klasse ändern UniQ PHP Tipps 2004 5 24.08.2004 14:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php klassen übergeben, php klasse übergeben, php class übergeben, php klasse an funktion übergeben, php classe übergeben, php class übergabe, classe an funktion übergeben php, class php4, php class daten übergeben, php 4 klasse funktioniert nicht, php klasse als argument übergeben, php 4 klassen übergeben, php klasse einer funktion übergeben, class php datenübergeben, php auto farbe, php class parameter übergabe, php wert an klasse übergeben, php funktion klasse übergeben, php klasse wert übergeben, übergabe einer klasse

Alle Zeitangaben in WEZ +1. Es ist jetzt 21:30 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.