tutorials.de Buch-Aktion 05/2012
RSS-Feed anzeigen

mAu's Blog

register_shutdown_function

Bewerten
von mAu am 05.04.07 um 19:36 (639 Hits)
Vorhin beim Stöbern auf php.net fand ich eine nützliche Funktion: register_shutdown_function().
In Verbindung mit z.B. einer Dateiklasse ist das ganze sehr nütlich, da man den Destruktor automatisch am Ende eines Scripts aufrufen lassen kann und man dann z.B. noch offene Dateihandles etc. schießen kann. Funktioniert natürlich bei (My)SQL-Klassen,
um die Datenbankverbindung am Ende eines jeden Scripts automatisch zu beenden. Dazu ein Beispiel:
PHP-Code:
<?php
class Test
{
    
/* Dateihandle */
    
private $_fh null;
    
    public function 
__construct($file '')
    {
        
$this->_fh fopen((empty($file) ? date('m-d-Y') . '.txt' $file), 'wb');
        
register_shutdown_function(array(&$this'__destruct'));
    }
    
    public function 
__destruct()
    {
        if(
is_resource($this->_fh))
        {
            
fwrite($this->_fh,'Shutdown at ' date('m-d-Y H:i:s'));
            
fclose($this->_fh);
        }
    }
}

$file = new Test;
?>
Hoffentlich für den einen oder anderen nützlich.
Bis dann,
der (abiturgestresste) mAu

"register_shutdown_function" bei Twitter speichern "register_shutdown_function" bei Facebook speichern

Kategorien
Programming

Kommentare

  1. Avatar von Matthias Reitinger
    Das Beispiel ist allerdings sehr schlecht gewählt, weil der Destruktor auch so aufgerufen wird. register_shutdown_function() ist hier also unnötig.
  2. Avatar von Dennis Wronka
    Mit PHP4 kann man das jedoch nutzen um eine dem Destruktor entsprechende Funktion aufzurufen da PHP4 noch keine Destruktoren kennt.
  3. Avatar von mAu
    @Matthias: Stimmt, ist mir gar nicht aufgefallen. Werde bei Gelegenheit ein besseres Beispiel suchen.