php 선언의 일반적인 사용법은 "declare(ticks=N);"이며, 그 기능은 Zend 엔진이 하위 수준 명령문을 실행할 때마다 "register_tick_function()"에 의해 등록된 함수를 실행하는 것입니다.
추천: "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( 'check_timeout' ); // 模拟一段耗时的业务逻辑 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!