Scriptindex.de

[ Menü ]

Home
News
Scripts
Neuzugänge
Suchen
Bücher
Manuals

[ Inhalt ]

Script eintragen
Tutorial eintragen
Newsletter
Umfragen
Link zu uns
Werbung bei uns
Kontakt
Impressum

[ Statistik ]

Hits gesamt: 5202845
Hits Heute: 948
max. Hits (10.07.07): 6964
User Online: 43
Scripts: 2828

[ Partner ]

CodeBase
I.S.U.M.
LUG Bayreuth
PEAR NEWS
PHP Classes

[ Facebook ]

[ Eigene Domain? ]

[ Buchtipp ]

ASP.NET Kochbuch mit C#
ASP.NET Kochbuch mit C#

Manuals > PHP > declare

declare

Das Sprachkonstrukt declare wird dazu verwendet, um Ausführungsdirektiven für einen Codeblock anzugeben. Die Schreibweise von declare ist der anderer Kontrollstrukturen ähnlich:

declare (Direktive) Anweisung

Die Directive gibt Ihnen die Möglichkeit, das Verhalten des declare-Blocks zu bestimmen. Zur Zeit wird nur eine Direktive erkannt: die ticks (Weiter unten finden Sie mehr Informationen zu den ticks).

Der Anweisungsteil des declare-Blocks wird ausgeführt - wie genau diese Ausführung passiert und welche Nebeneffekte während der Ausführung auftreten, hängt von der Direktive ab, die Sie im directive-Block angegeben haben.

Ticks

Ein tick ist ein Ereigniss, das bei jedem N-ten Autreten der low-level Anweisungen innerhalb des declare Blocks, die vom Parser ausgeführt werden, auftritt. Der Wert von N wird durch die Angabe von ticks=N innerhalb des declare-Blocks in dem directive Abschnitt bestimmt.

Das Ereignis/die Ereignisse, die bei jedem tick eintreten, legen Sie mit der Funktion register_tick_function() fest. Weitere Einzelheiten können Sie dem Beispiel unten entnehmen. Beachten Sie, dass mehr als ein Ereigniss für jeden tick eintreten kann.

Beispiel 11-1. Profil eines Bereichs von PHP Code

<?php
// Funktion, die bei Aufruf die Zeit aufzeichnet
function profile ($dump = FALSE)
{
    static
$profile;

    
// Rückgabe der gespeicherten Zeit aus profile, danach löschen
    
if ($dump) {
        
$temp = $profile;
        unset (
$profile);
        return (
$temp);
    }

    
$profile[] = microtime ();
}

// Einen tick handler bestimmen
register_tick_function("profile");

// Funktion vor dem declare-Block initialisieren
profile ();

// Ausführen eines Code-Blocks, jede 2te Anweisung löst einen tick aus

declare (ticks=2) {
    for (
$x = 1; $x < 50; ++$x) {
        echo
similar_text (md5($x), md5($x*$x)), "<br />;";
    }
}

// Ausgabe der gespeicherten Daten aus dem Profiler
print_r (profile (TRUE));
?>
Dieses Beispiel 'profiliert' den PHP Code der im 'declare'-Block steht, indem die Zeit festgehalten wird, zu der jede zweite low-level Anweisung im Codeblock ausgeführt wird. Diese Information können Sie dazu benutzen, langsame Bereiche innerhalb bestimmter Codesegmente zu idebtifizieren. Das gleiche Ziel können Sie auch mit anderen Methoden erreichen: die Benutzung von ticks ist bequemer und einfacher zu implementieren.

Ticks sind gut für Debugging, einfaches Multitasking, Hintergrund I/O und viele andere Aufgaben geeignet.

Siehe auch register_tick_function() und unregister_tick_function().


Copyright 1998 - 2009 by I.S.U.M.