php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.11.2005, 15:50  
Neuer Benutzer
 
Registriert seit: 15.11.2005
Beiträge: 17
finerip
Standard Globale Variabeln in Funktionen

Hallo Miteinander,

ahbe gerade mal das Forum abgesucht konnte aber zu meinem Problem keine passende Antwort finden. Es geht dabei um folgendes:

Ich habe mir ein PHP-Skript erstellt. In diesem werden zwei Funktionen definiert. Die erste 'db_connect' dient dazu eine Verbindung zu meiner DB zu erstellen. Die zweite 'db_close' um die Verbindung wieder zu schließen - man soll ja immer sauber arbeiten :wink:

Nun kenne ich mich mit PHP nicht so sehr aus, und mir stellt sich die Frage, bevor ich in beiden Funktionen Variabeln deklariere könnte ich das in der Datei doch auch global machen, so dass diese Variabeln für beide Funktionen gelten - ist sowas möglich?

Ich frage das auch aus dem Grund, weil ich mir so auch einige Zeilen an Quelltext sparen kann, der sonst doppelt im gleichen Skript vorkommt.

Vielen Dank mal im Voraus an alle, die mir da etwas weiterhelfen können und Ihre Erfahrung mitteilen. Wie gesagt, mit PHP hatte ich bis jetzt noch nicht so viel am Hut

Danke, finerip


P.S.: Um diesen Quelltext handelt es sich:

PHP-Code:
// Verbindung zum Datenbankserver öffnen
function db_connect()
{
 
$db_server="";    // Hostname
 
$db_user="";    // Benutzername
 
$db_key="";    // Passwort
 
$dbname="";    // Datenbankname

 // Datenbankhandle
 
$dbh = @mysql_connect("$db_server""$db_user""$db_key") or die ("Verbindung mit '$dbserver' z.Zt. nicht moeglich".mysql_error());

 
// Datenbank auswaehlen
 
$selectDB = @mysql_select_db($dbname$dbh) or die("Konnte die Datenbank [b]$dbname[/b] nicht auswählen!");

 
// Datenbankhandle zurueckgeben
 
return $db;
}

// Verbindung zum Datenbankserver schließen
function db_close()
{
  
// HIER JETZT WIEDER DIE GLEICHEN VARIABELN !!!
 
$db_server="";    // Hostname    
 
$db_user="";    // Benutzername
 
$db_key="";        // Passwort
 
$dblink_id = @mysql_connect($db_server,$db_user,$db_key);
 
mysql_close($dblink_id);

finerip ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 28.11.2005, 15:54  
Gast
 
Beiträge: n/a
Standard

"global" hilft dir vielleicht:

Code:
$variable = "Hallo, Welt!";

function foo()
{
    global $variable;

    echo $variable;
}
Solltest du aber vermeiden. Ruf die Funktion lieber mit einem Parameter auf:

Code:
function foo($variable)
{
    echo $variable;
}

// Anwenden:

foo("Hallo, Welt!");
Übrigens ist es völliger Blödsinn, die Verbindung zu öffnen, um sie zu schließen, siehe deine close-Funktion.
 
Alt 28.11.2005, 15:56  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

PHP-Code:
<?php
function db_connect($host "localhost"$user "root"$pw ""$db "meinedb")
{
  
$link mysql_connect($host$user$pw);
  if (
$link)
    
mysql_select_db($db$link);
  return 
$link;
}

function 
db_close($link)
{
  
// eigentlich unnötig, da =~ mysql_close();
  
return mysql_close($link);
}

$myConnection1 db_connect();
$myConnection2 db_connect("anderer.serv.er");
db_close($myConnection1);
db_close($myConnection2);
?>
Oder du löst das mit einer Klasse.


Edit: Achherrje nen Pfälzer, naja ich hätts wissen müssen
Zergling-new ist offline  
Alt 28.11.2005, 16:00  
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.557
PHP-Kenntnisse:
Fortgeschritten
Buhmann ist zur Zeit noch ein unbeschriebenes Blatt
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard

genau dafür gibt es klassen
PHP-Code:
<?php

class mysql {
        private 
$db_server="";    // Hostname
        
private $db_user="";    // Benutzername
        
private $db_key="";    // Passwort
        
private $dbname="";    // Datenbankname
        
private $dbh=NULL;
        public 
$selectDB=NULL;
        
        public function 
__construct($db_server,$db_user,$db_key,$dbname) {
                
$this->db_server $db_server;
                
$this->db_user $db_user;
                
$this->db_key $db_key;
                
$this->dbname $dbname;
        }
        
        public function 
db_connect()
        {
                
$this->dbh = @mysql_connect($this->db_server,$this->db_user,$this->db_key) or die ("Verbindung mit '".$this->db_server."' z.Zt. nicht moeglich".mysql_error());


                
$this->selectDB = @mysql_select_db($this->dbname$this->dbh) or die("Konnte die Datenbank [b]".$this->dbname."[/b] nicht ausw&auml;hlen!");


        }


        
public 
vfunction __destruct()
        {
                
mysql_close($this->dbh);
        }
}

?>
Die Klasse ist natürlich noch nicht fertig, aber so könnte ein Ansatz aussehen.
Buhmann ist offline  
 


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
Templatesystem mit Funktionen und Variablen drin? BartTheDevil89 PHP Tipps 2008 6 01.07.2008 09:32
rekursive Funktionen ?? usima PHP Tipps 2008 2 04.05.2008 11:25
welche funktionen deaktivieren brian johnson PHP-Fortgeschrittene 4 15.11.2007 09:25
Klassen und externe Funktionen ? ssm PHP-Fortgeschrittene 17 18.07.2007 11:59
eine Variable für alle Funktionen definieren Wing PHP Tipps 2007 16 24.06.2007 21:02
komische arrays werden in funktionen nicht angenommen! mollitz PHP Tipps 2007 8 08.03.2007 18:50
Funktionen überprüfen und Grafik Funktionen hans.karl2 PHP Tipps 2006 10 31.07.2006 20:08
Funktionen in Funktionen - ist das gut? Schneckenkind PHP Tipps 2006 23 10.06.2006 13:39
8 MB Speicher voll - alle Variabeln freigeben wie aber.... janni PHP Tipps 2006 10 30.03.2006 11:59
globale Variablen und OOP Timo Trallala PHP Tipps 2006 3 28.03.2006 12:02
Klassen, Funktionen und Session Fatal Error PHP Tipps 2006 1 15.03.2006 19:05
Sessions - Variabeln werden beim ersten Mal nicht gespeicher PHP Tipps 2007 8 19.11.2005 12:45
Eure Ideen sind gefragt: eigene Funktionen verwalten PHP-Fortgeschrittene 12 17.01.2005 15:00
Funktionen auslagern und auf variablen zugreifen Crypi PHP Tipps 2004 3 14.10.2004 13:43
Funktionen Erklärung TheSkaterFriend PHP Tipps 2004 14 11.06.2004 22:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
funktion global, global funktion, global in funktion, global funktionen, globalfunktion, http://www.php.de/php-tipps-2007/34255-globale-variabeln-funktionen.html, php global in function, was ist globale funktion, globale variabeln, function global, globale funktionen klassen, functionen global, funktionen global, session variabeln in funktionien php, passwort php global, globale funktion, global in klassen funktionen, function global php, globale variabeln in funktion, php funktionen alles global

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