php-resource

PHP Handbuch

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 Direktive gibt Ihnen die Möglichkeit, das Verhalten des declare-Blocks zu bestimmen. Zur Zeit wird nur eine Direktive unterstützt: 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.

Das declare Konstrukt kann auch im globalen Geltungsbereich benutzt werden und gilt dann für den folgenden Code.

<?php
// bewirkt das Gleiche:

// sie können declare so benutzen:
declare(ticks=1) {
    
// hier folgt Ihr ganzes Skript
}

// oder wie hier:
declare(ticks=1);
// hier folgt Ihr ganzes Skript
?>

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 16-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 identifizieren. 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().



Anmerkungen zum PHP Handbuch
Neue Anmerkung schreiben
 

webhosting und Server



 

Neuzugänge PHP MySQL Tutorials

Joomla! Starterhilfe

Dieses Tutorial begleitet Sie bei dem Einstieg in die Welt von dem CMS Joomla!.

17.01.2012 werninator | Kategorie: MySQL
Objektorientiertes Programmieren

Dieses Tutorial beschreibt sehr gut die Wirkunsweise von objektorientiertes Programmieren. Also bestens geeignet um das objektorientierte Programmieren zu verstehen.

07.12.2010 phpsven | Kategorie: PHP
Tutorials zu Facebook Anwendungen mit PHP

In mehreren Tutorials wird der Zugriff auf Facebook Daten mittels Graph API, FQL und REST API erklärt. Alle Codebeispiele liegen zum Ausprobieren in einem SVN, bzw. github Repository bereit.

06.12.2010 abouttheweb | Kategorie: PHP