Ankündigung

Einklappen
Keine Ankündigung bisher.

Globale Variabeln in Funktionen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • finerip
    hat ein Thema erstellt Globale Variabeln in Funktionen.

    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);


  • Buhmann
    antwortet
    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.

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    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

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    "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.

    Einen Kommentar schreiben:

Lädt...
X