declare
 (PHP 4, PHP 5, PHP 7, PHP 8)
 
  Das declare-Konstrukt wird verwendet, um
  Ausführungsdirektiven für einen Codeblock festzulegen. Die Syntax von
  declare ist ähnlich wie die Syntax anderer
  Ablauf-Kontrollstrukturen:
  
 
 
  Die directive-Sektion erlaubt es, das Verhalten des
  declare-Blocks anzugeben.
  Aktuell werden nur drei Direktiven unterstützt:
  
 
 
  Da Direktiven behandelt werden, wenn die Datei kompiliert wird, dürfen nur
  Literale als Direktiven-Werte angegeben werden. Variable und Konstante können
  nicht verwendet werden. Zur Veranschaulichung:
  
 
 
  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).
  
 
 
  Ticks
  
   Ein Tick ist ein Event, das für 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
   ticks=N innerhalb der
   directive-Sektion des declare-Blocks
   angegeben.
  
  
   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
declare(ticks=1);
// Funktion, welche bei jeden Tick-Event aufgerufen wird
function tick_handler()
{
    echo "tick_handler() aufgerufen\n";
}
register_tick_function('tick_handler'); // löst ein Tick-Ereignis aus
$a = 1; // löst ein Tick-Ereignis aus
if ($a > 0) {
    $a += 2; // löst ein Tick-Ereignis aus
    print $a; // löst ein Tick-Ereignis aus
}
?>
     
    
  
  
   Siehe auch register_tick_function() und
   unregister_tick_function().
  
  
 
  Encoding
  
   Das Encoding eines Skripts kann pro Skript mittels der encoding-Direktive
   festgelegt werden.
   
    Beispiel #2 Das Encoding eines Skripts deklarieren
    
<?php
declare(encoding='ISO-8859-1');
// hier folgt der Code
?>
     
    
  
  Achtung
   
    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.
   
   
  
   Siehe auch zend.script_encoding.