Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > definierte Variable nutzen
Antwort
 
Themen-Optionen
Alt 14.08.2005, 10:47   Nach oben    #1
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.225
Standard definierte Variable nutzen

Ich habe eine Datei, in der ich global Variablen definiere (per include() eingebunden).

Diese möchte ich nun in einer Klasse nutzen:
PHP-Code:
<?php
  
class mysqlconnection
  
{
    global 
$_CONFIG;                                 // <-- Zeile 4
    
var $db_host     $_CONFIG['host'];
    var 
$db_database $_CONFIG['database'];
    var 
$db_username $_CONFIG['login'];
    var 
$db_pass     $_CONFIG['passwd'];
// [...]
?>
Jedoch ist es SO falsch:
Zitat:
Zitat von Fehlermeldung
Parse error: syntax error, unexpected T_GLOBAL, expecting T_FUNCTION in ...\db_class.php on line 4
Nun meine Frage: Wie müßte ich es denn anstellen, damit ich auf die Variablen zugreifen kann?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.08.2005, 12:53   Nach oben    #2
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 447
Standard definierte Variable nutzen

Hi,

so könntest du das machen:
Code:
<?php
class mysqlconnection
{
	public $db_host = "";
	public $db_database = "";
	public $db_username = "";
	public $db_pass = "";

	function __construct($_CONFIG) {
		$this->db_host     = $_CONFIG['host'];
		$this->db_database = $_CONFIG['database'];
		$this->db_username = $_CONFIG['login'];
		$this->db_pass     = $_CONFIG['passwd'];
	}
}

$mysql = new mysqlconnection($_CONFIG);

?>
__________________
Corvin ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.08.2005, 14:22   Nach oben    #3
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.225
Standard definierte Variable nutzen

ok, das klappt prima, aber nun interessiert mich warum
function __construct($_CONFIG) automatisch aufgerufen wird?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.08.2005, 15:07   Nach oben    #4
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 447
Standard definierte Variable nutzen

Das ist der Konstruktor der Klasse. In PHP 4 hat man dem Konstruktor den selben Namen wie der Klasse gegeben, seit PHP 5 gibt es aber __construct().
__________________
Corvin ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.08.2005, 15:28   Nach oben    #5
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.225
Standard definierte Variable nutzen

ok - das ist dann soweit klar.


verstehe ich das Handbuch auf http://de2.php.net/construct richtig, dass der Destructor dann automatisch zum Ende aufgerufen wird?
Ich könnte damit also die sql-Verbindung beenden?
Bzw. wofür wäre der sinnvoll?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.08.2005, 15:34   Nach oben    #6
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 447
Standard definierte Variable nutzen

Wenn du das Objekt der Klasse auflöst ( unset($mysql) ) wird der Destruktor aufgerufen.
__________________
Corvin ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.08.2005, 14:51   Nach oben    #7
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard definierte Variable nutzen

Ein Konstruktor ist imho nur dann sinnvoll, wenn ein Objekt z.B. in Zeile 34 das letzte Mal verwendet wird und das Script noch einige Hundert Zeilen mehr abarbeitet.

Ein expliziter Aufruf des Konstruktors am Ende des Scripts ist unnötig, da das Objekt sowieso nur bis zum Ende des Scripts "lebt".

Grüße Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.08.2005, 18:10   Nach oben    #8
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.225
Standard definierte Variable nutzen

Zitat:
Zitat von Ben
Ein Konstruktor
äh... sicher dass du hier den Konstruktor - nicht den Destruktor meinst?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.08.2005, 01:33   Nach oben    #9
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard definierte Variable nutzen

Zitat:
Zitat von Jann Hendrik
Zitat:
Zitat von Ben
Ein Konstruktor
äh... sicher dass du hier den Konstruktor - nicht den Destruktor meinst?
Jo, versprochen bzw. vertippt ... hatte gerade noch nebenbei an einem Konstruktor geschrieben ^^ .. nuja.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.08.2005, 09:12   Nach oben    #10
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.225
Standard definierte Variable nutzen

du weißt - ich hätte dir das geglaubt, nur ... das passte nicht zu dem was ich dem Handbuch entnommen hatte....

gut - also zurück zum Destruktor. Du (Ben) sagst, dass sich dieser nur lohnt, wenn die Klasse relativ früh beendet ist (und das Skript noch ne Weile lebt), weil die Klasse mit der letzten Zeile eh stirbt...


also wäre ein Destruktor, der die Verbindung zum sql-Server beendet sinnfrei?
Abgesehen davon, dass ich das so mitbekommen habe, dass mysql_close() eigentlich eh nicht notwendig ist, wenn man nur eine Verbindung herstellt...

richtig, oder liege ich daneben?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.08.2005, 18:09   Nach oben    #11
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard definierte Variable nutzen

Zitat:
Zitat von Jann Hendrik
also wäre ein Destruktor, der die Verbindung zum sql-Server beendet sinnfrei?
Äh. Ja nur dann, wenn Deine "letzte" Zeile das hier wäre:

PHP-Code:
<?php

    
unset($dbObject);

?>
Würde ich mal so sagen.

Grüße Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.08.2005, 14:26   Nach oben    #12
Benutzer
 
Registriert seit: 17.08.2005
Beiträge: 87
Standard definierte Variable nutzen

php wacht selbst schon über die (meisten) resourcen. Was am Ende des Skripts noch rumliegt wird abgebaut. Das gilt für mysql-Verbindungsresourcen genauso wie für selbsterstellte Klassen bzw. die zugehörigen Objekte.
PHP-Code:
<?php 
class Testklasse
{
  function 
__destruct() {
    echo 
"mich zerlegt's";
  }
}

echo 
"lege neues Objekt an\n";
$t = new Testklasse;
echo 
"und Ende\n";
?>
Zitat:
lege neues Objekt an
und Ende
mich zerlegt's
Jetzt ist die Frage, wann du was (früher) erledigt haben willst.
Wenn Du z.B. eine einzige sql-Abfrage am Anfang des Skripts hast und die restliche Abarbeitung ...kA, vielleicht 2 Minuten dauert, dann liegt zwei Minuten lang die Verbindung nutzlos rum. Das kann zum problem werden und dann musst Du eingreifen.
Ansonsten kannst Du eingreifen, um es Puristen recht zu machen - musst Du aber nicht

p.s.: uh, der [php]-Block mag keine Tabulatoren
// edit by Jann Hendrik: danke für den Hinweis - ich wußte leider nicht, woran es liegt... muss aber geändert werden (bzzgl. tab)
VolkerK ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
php variable in JS anzeigen Galge JavaScript und AJAX 9 28.03.2007 14:44
[Smarty] Variable in variable aus Konfigurationsdatei umwandeln? thrawn PEAR, PECL und Frameworks 9 20.07.2006 11:52
[PHP] FTP-Funktionen in PHP nutzen MrNiceGuy Tutorials 0 24.05.2006 14:18
[Realisierung] [Brainstroming] Variable Wertanzahl Du-weisst-schon-wer Datenbanken 5 08.01.2006 20:41
Variablennamen mit Variable. Creativ PHP-Programmierung 9 30.11.2005 08:40


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:41 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44