declare

(PHP 4, PHP 5, PHP 7)

declare 锟结构锟斤拷锟斤拷锟借定一锟轿达拷锟斤拷锟街达拷锟街革拷睢�declare 锟斤拷锟斤法锟斤拷锟斤拷锟斤拷锟斤拷锟教匡拷锟狡结构锟斤拷锟狡o拷

declare (directive)
    statement

directive 锟斤拷锟斤拷锟斤拷锟斤拷锟借定 declare 锟斤拷锟斤拷蔚锟斤拷锟轿拷锟侥壳爸伙拷锟绞讹拷锟斤拷锟街革拷睿�ticks锟斤拷锟斤拷锟斤拷锟斤拷息锟斤拷锟斤拷锟斤拷 ticks 指锟筋)锟皆硷拷 encoding锟斤拷锟斤拷锟斤拷锟斤拷息锟斤拷锟斤拷锟斤拷 encoding 指锟筋)锟斤拷

Note: encoding 锟斤拷 PHP 5.3.0 锟斤拷锟斤拷指锟筋。

declare 锟斤拷锟斤拷锟斤拷械锟� statement 锟斤拷锟街斤拷锟斤拷执锟斤拷——锟斤拷锟斤拷执锟斤拷锟皆硷拷执锟斤拷锟斤拷锟斤拷什么锟斤拷锟斤拷锟矫筹拷锟斤拷取锟斤拷锟斤拷 directive 锟斤拷锟借定锟斤拷指锟筋。

declare 锟结构也锟斤拷锟斤拷锟斤拷全锟街凤拷围锟斤拷影锟届到锟斤拷锟斤拷锟斤拷锟叫达拷锟诫(锟斤拷锟斤拷锟斤拷锟� declare 锟结构锟斤拷锟侥硷拷锟斤拷锟斤拷锟斤拷锟侥硷拷锟斤拷锟斤拷锟斤拷锟斤拷园锟斤拷锟斤拷锟斤拷母锟斤拷募锟斤拷锟斤拷锟斤拷锟斤拷茫锟斤拷锟�

<?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锟斤拷时锟斤拷锟斤拷锟节o拷锟斤拷一锟斤拷锟斤拷 declare 锟斤拷锟斤拷锟斤拷薪锟斤拷锟斤拷锟矫恐达拷锟� N 锟斤拷锟缴硷拷时锟侥低硷拷锟斤拷锟酵会发锟斤拷锟斤拷锟铰硷拷锟斤拷N 锟斤拷值锟斤拷锟斤拷 declare 锟叫碉拷 directive 锟斤拷锟斤拷锟斤拷 ticks=N 锟斤拷指锟斤拷锟侥★拷

锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷涠硷拷杉锟绞憋拷锟酵拷锟斤拷锟斤拷锟斤拷锟斤拷式锟酵诧拷锟斤拷锟斤拷锟绞斤拷锟斤拷锟斤拷杉锟绞憋拷锟�

锟斤拷每锟斤拷 tick 锟叫筹拷锟街碉拷锟铰硷拷锟斤拷锟斤拷 register_tick_function() 锟斤拷指锟斤拷锟侥★拷锟斤拷锟斤拷细锟节硷拷锟斤拷锟斤拷锟斤拷锟斤拷印锟阶拷锟矫匡拷锟� tick 锟叫匡拷锟皆筹拷锟街讹拷锟斤拷录锟斤拷锟�

Example #1 Tick 锟斤拷锟矫凤拷示锟斤拷

<?php

declare(ticks=1);

// A function called on each tick event
function tick_handler()
{
    echo 
"tick_handler() called\n";
}

register_tick_function('tick_handler');

$a 1;

if (
$a 0) {
    
$a += 2;
    print(
$a);
}

?>

Example #2 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();

?>

锟轿硷拷 register_tick_function() 锟斤拷 unregister_tick_function()锟斤拷

Encoding

锟斤拷锟斤拷锟斤拷 encoding 指锟斤拷锟斤拷锟斤拷每锟轿脚憋拷指锟斤拷锟斤拷锟斤拷敕绞斤拷锟�

Example #3 锟皆脚憋拷指锟斤拷锟斤拷锟诫方式

<?php
declare(encoding='ISO-8859-1');
// code here
?>

Caution

锟斤拷锟斤拷锟斤拷锟斤拷锟秸硷拷锟斤拷锟斤拷锟斤拷时 declare 锟斤拷唯一锟较凤拷锟斤法锟斤拷 declare(encoding='...');锟斤拷锟斤拷锟斤拷 ... 锟角憋拷锟斤拷锟街碉拷锟斤拷锟� declare(encoding='...') {} 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟秸硷拷锟斤拷时锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷

锟斤拷 PHP 5.3 锟叫筹拷锟斤拷锟节憋拷锟斤拷时指锟斤拷锟斤拷 --enable-zend-multibyte锟斤拷锟斤拷锟斤拷 declare 锟叫碉拷 encoding 值锟结被锟斤拷锟皆★拷

注锟斤拷锟斤拷锟斤拷锟� phpinfo()锟斤拷锟斤拷锟斤拷 PHP 锟斤拷锟斤拷锟斤拷示锟斤拷锟角凤拷锟节憋拷锟斤拷时指锟斤拷锟斤拷 --enable-zend-multibyte锟斤拷

锟轿硷拷 zend.script_encoding锟斤拷