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

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

Oct 22, 2020 am 09:38 AM
declare php

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

<?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"가 인쇄됩니다. " 나가려고

​​

1

2

3

4

5

6

7

8

9

<?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으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드

CakePHP 날짜 및 시간 CakePHP 날짜 및 시간 Sep 10, 2024 pm 05:27 PM

CakePHP 날짜 및 시간

CakePHP 프로젝트 구성 CakePHP 프로젝트 구성 Sep 10, 2024 pm 05:25 PM

CakePHP 프로젝트 구성

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

CakePHP 파일 업로드

CakePHP 라우팅 CakePHP 라우팅 Sep 10, 2024 pm 05:25 PM

CakePHP 라우팅

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

CakePHP 토론

CakePHP 빠른 가이드 CakePHP 빠른 가이드 Sep 10, 2024 pm 05:27 PM

CakePHP 빠른 가이드

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법

See all articles