declare

(PHP 4, PHP 5, PHP 7)

declare �ṹ�����趨һ�δ����ִ��ָ�declare ���﷨���������̿��ƽṹ���ƣ�

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��ʱ�����ڣ���һ���� 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='...');������ ... �DZ����ֵ���� declare(encoding='...') {} �����������ռ���ʱ������������

�� PHP 5.3 �г����ڱ���ʱָ���� --enable-zend-multibyte������ declare �е� encoding ֵ�ᱻ���ԡ�

ע������� phpinfo()������ PHP ������ʾ���Ƿ��ڱ���ʱָ���� --enable-zend-multibyte��

�μ� zend.script_encoding��