Heim  >  Artikel  >  Backend-Entwicklung  >  php--declare-Anweisung

php--declare-Anweisung

伊谢尔伦
伊谢尔伦Original
2016-11-24 09:14:571504Durchsuche

Die

declare-Struktur wird verwendet, um die Ausführungsanweisungen eines Codeabschnitts festzulegen. Die Syntax von „deklarieren“ ähnelt anderen Flusskontrollstrukturen: Der Direktiventeil

declare (directive)
    statement

ermöglicht das Festlegen des Verhaltens des Deklarationscodesegments. Derzeit sind nur zwei Anweisungen bekannt: Ticks und Codierung.

Hinweis: Codierung ist ein neuer Befehl in PHP 5.3.0.

Der Anweisungsteil des Deklarationscodesegments wird ausgeführt – wie er ausgeführt wird und welche Nebenwirkungen während der Ausführung auftreten, hängt von den in der Direktive festgelegten Anweisungen ab.

Die Deklarationsstruktur kann auch im globalen Bereich verwendet werden und wirkt sich auf den gesamten nachfolgenden Code aus (wenn jedoch eine Datei mit einer Deklarationsstruktur in andere Dateien eingebunden wird, hat dies keine Auswirkungen auf die übergeordnete Datei, die sie enthält).

<?php
// these are the same:
// you can use this:
declare(ticks=1) {
    // entire script here
}
// or you can use this:
declare(ticks=1);
// entire script here
?>

Ticks

Tick (Taktzyklus) ist ein Ereignis, das jedes Mal auftritt, wenn der Interpreter N zeitgesteuerte Low-Level-Anweisungen im Deklarationscodesegment ausführt. Der Wert von N wird mit ticks=N im Direktiventeil der Deklaration angegeben.

Nicht alle Aussagen können zeitlich festgelegt werden. Normalerweise sind bedingte Ausdrücke und Parameterausdrücke nicht zeitgesteuert.

Die Ereignisse, die in jedem Tick auftreten, werden durch register_tick_function() angegeben. Weitere Einzelheiten finden Sie im Beispiel unten. Beachten Sie, dass pro Tick mehrere Ereignisse auftreten können.

Beispiel Nr. 1 Verwendungsbeispiel für Tick

<?php
declare(ticks=1);
// A function called on each tick event
function tick_handler()
{
    echo "tick_handler() called\n";
}
register_tick_function(&#39;tick_handler&#39;);
$a = 1;
if ($a > 0) {
    $a += 2;
    print($a);
}
?>

Beispiel Nr. 2 Verwendungsbeispiel für Ticks

<?php
function tick_handler()
{
  echo "tick_handler() called\n";
}
$a = 1;
tick_handler();
if ($a > 0) {
    $a += 2;
    tick_handler();
    print($a);
    tick_handler();
}
tick_handler();
?>

Siehe register_tick_function() und unregister_tick_function().

Kodierung

Sie können die Kodierungsanweisung verwenden, um die Kodierungsmethode für jedes Skript anzugeben.

Beispiel #3 Geben Sie die Kodierungsmethode für das Skript an

e5068104fcf3f1147e0a91bb3a9194aa

Achtung Die einzige zulässige Syntax für „declare“ in Kombination mit einem Namespace ist „declare(encoding='...');“, wobei ... der codierte Wert ist. Und deklarieren(encoding='...') {} führt in Kombination mit einem Namespace zu einem Analysefehler.


In PHP 5.3 wird der Codierungswert in der Deklaration ignoriert, es sei denn, --enable-zend-multibyte wird beim Kompilieren angegeben.

Beachten Sie, dass PHP nicht anzeigt, ob --enable-zend-multibyte während der Kompilierung angegeben wurde, es sei denn, phpinfo() wird verwendet.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn