
Druckansicht von http://www.php-homepage.de/manual/control-structures.declare.php
declare(PHP 4, PHP 5) Das declare-Konstrukt wird verwendet, um Ausführungsdirektiven für einen Codeblock festzulegen. Die Syntax von declare ist ähnliche wie die Syntax anderer Ablauf-Kontrollstrukturen:
declare (directive)
statement
Die directive-Sektion erlaubt es, das Verhalten des declare-Blocks anzugeben. Aktuell werden zwei Direktiven unterstützt: die ticks-Direktive (siehe unten für weitere Informationen über die ticks-Direktive) und die encoding-Direktive (siehe unten für weitere Informationen über die encoding-Direktive).
Der statement-Teil des declare-Blocks wird ausgeführt - wie genau die Ausführung aussieht und welche Seiteneffekte während der Ausführung auftreten können, ist abhängig von der im directive-Block gesetzten Direktive. Das declare-Konstrukt kann außerdem im globalen Sichtbarkeitsbereich verwendet werden, es hat dann Auswirkungen auf den gesamten folgenden Code (wird die Datei mit der declare-Anweisung inkludiert, hat die Anweisung jedoch keine Auswirkung auf das einbindende File).
<?phpTicks
Ein Tick ist ein Event, das alle N Low-Level-Statements
auftritt, die vom Parser innerhalb des declare-Blocks
ausgeführt werden.
Der Wert für N wird durch die Verwendung von
Nicht alle Statements führen zu einem Tick-Event. So etwa Konditionen und Argumente. Das/die bei jedem Tick auftretenden Event(s) werden durch die Verwendung der Funktion register_tick_function() angegeben. Betrachten Sie das folgende Beispiel für mehr Details. Beachten Sie, dass mehr als ein Event bei jedem Tick auftreten kann.
Beispiel #1 Tick Nutzungsbeispiel
<?php
Beispiel #2 Tick Nutzungsbeispiel
<?phpSiehe auch register_tick_function() und unregister_tick_function(). EncodingDas Encoding eines Skripts kann pro Skript mittels der Encoding-Direktive festgelegt werden. Beispiel #3 Das Encoding eines Skripts deklarieren.
<?phpAchtung
Die einzig zulässige Syntax für ein declare, das mit Namespaces kombiniert wird, ist declare(encoding='...');, wobei ... der Name des Encodings ist. declare(encoding='...') {} führt zu einem Parse-Error, wenn es mit Namespaces kombiniert wird. Der encodete declare-Wert wird in PHP 5.3 ignoriert, sofern PHP nicht mit --enable-zend-multibyte kompiliert wurde. PHP bietet abgesehen von phpinfo() keine Möglichkeit zur Laufzeit herauszufinden, ob es mit --enable-zend-multibyte kompiliert wurde. |