>  기사  >  백엔드 개발  >  PHP 선언 사용법에 대한 자세한 설명

PHP 선언 사용법에 대한 자세한 설명

藏色散人
藏色散人원래의
2020-10-22 09:38:033004검색

php 선언의 일반적인 사용법은 "declare(ticks=N);"이며, 그 기능은 Zend 엔진이 하위 수준 명령문을 실행할 때마다 "register_tick_function()"에 의해 등록된 함수를 실행하는 것입니다.

PHP 선언 사용법에 대한 자세한 설명

추천: "PHP 비디오 튜토리얼"

php

에서 선언 기능에 대한 자세한 설명은 다음과 같습니다. 일반적인 사용법은 선언(틱스=N);

선언(틱스=1)입니다. 예를 들어, 문장에는 두 가지 주요 기능이 있습니다:

1. Zend 엔진이 하위 수준 명령문을 실행할 때마다 Register_tick_function()에 의해 등록된 함수를 실행합니다.

PHP 코드의 문장이 실행될 때마다(예: $num=1;) 등록된 틱 함수가 실행되는 것으로 대략적으로 이해할 수 있습니다.

한 가지 용도는 특정 코드 부분의 실행 시간을 제어하는 ​​것입니다. 예를 들어 다음 코드는 끝에 무한 루프가 있지만 실행 시간은 5초를 초과하지 않습니다.

Run php timeout.php

<?php
declare (ticks=1);
// 开始时间
$time_start  = time();
// 检查是否已经超时
function  check_timeout(){
     // 开始时间
     global  $time_start ;
     // 5秒超时
     $timeout  = 5;
     if (time()- $time_start  >  $timeout ){
         exit ( "超时{$timeout}秒\n" );
     }
}
// Zend引擎每执行一次低级语句就执行一下check_timeout
register_tick_function( &#39;check_timeout&#39; );
// 模拟一段耗时的业务逻辑
while (1){
    $num  = 1;
}
// 模拟一段耗时的业务逻辑,虽然是死循环,但是执行时间不会超过$timeout=5秒
while (1){
    $num  = 1;
}

2.declare(ticks=1); 하위 수준 명령문이 실행될 때마다 프로세스에 처리되지 않은 신호가 있는지 확인합니다.

php signal.php를 실행하세요.

그런 다음 CTL+c 또는 kill -SIGINT PID를 사용하면 실행 중인 코드가 무한 루프에서 벗어나 pcntl_signal에 등록된 함수를 실행하게 됩니다. 그 결과 스크립트 종료 시 "Get signal SIGINT 및 exi"가 인쇄됩니다. " 나가려고

​​

<?php
declare (ticks=1);
pcntl_signal(SIGINT,  function (){
    exit ( "Get signal SIGINT and exit\n" );
});
echo  "Ctl + c or run cmd : kill -SIGINT "  . posix_getpid().  "\n"  ;
while (1){
   $num  = 1;
}

위 내용은 PHP 선언 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.