PHP에는 JS의 setInterval 또는 setTimeout과 유사한 기본 타이머 관련 기능이 없습니다. 하지만 선언을 사용하는 등 다른 방법으로 이를 수행할 수 있습니다. 다음으로 에디터가 선언의 사용법을 소개하겠습니다
우선 어떻게 구현되는지 살펴보고 선언 표현식이 무엇인지 알아보겠습니다.
function do_tick($str = '') { list($sec, $usec) = explode(' ', microtime()); printf("[%.4f] Tick.%s\n", $sec + $usec, $str); } register_tick_function('do_tick'); do_tick('--start--'); declare (ticks = 1) { while (1) { sleep(1); // 这里,每执行一次就去调用一次do_tick() } }
실행 후 1초마다 현재 시간을 출력하는 매우 간단한 코드입니다.
declare 구문은 다음과 같이 정의됩니다.
declare (directive) statemaent;
선언 구조는 코드 조각의 실행 지침을 설정하는 데 사용됩니다.
지시문 부분을 사용하면 선언 코드 세그먼트의 동작을 설정할 수 있습니다. 현재 알려진 명령은 틱과 인코딩 두 가지뿐입니다. 틱(클럭 주기)은 인터프리터가 선언 코드 세그먼트에서 N개의 시간 지정 하위 수준 명령문을 실행할 때마다 발생하는 이벤트입니다. N의 값은 선언의 지시문 부분에서 Ticks=N으로 지정됩니다. 각 Tick에서 발생하는 이벤트는 Register_tick_function()에 의해 지정됩니다. 여기서는 Tick의 사용만 연구합니다.
위 코드에서 우리는 틱에 대한 do_tick() 메서드를 등록하기 위해 Register_tick_function()을 사용하고 선언은 틱=1을 지정합니다. 즉, 시간을 측정할 수 있는 하위 수준 명령문이 실행될 때마다 Register_tick_function()이 실행됩니다. 선언된 코드 블록의 while이 매번 반복될 때 1초 동안 일시 중지하는 sleep()이 있으며, 이 sleep()은 시간을 측정할 수 있는 저수준 명령문입니다. 그러면 while()은 시간을 측정할 수 있는 저수준 명령문이 아닌가요? 물론 그렇지 않습니다. where와 if와 같은 조건부 판단은 시간을 정할 수 있는 낮은 수준의 진술이 아닙니다.
모든 진술에 시간이 정해져 있는 것은 아닙니다. 일반적으로 조건식과 매개변수 표현식은 시간 제한이 없습니다. -
다음 예시를 통해 단계별로 선언을 실행하는 방법을 살펴보겠습니다.
function test_tick() { static $i = 0; echo 'test_tick:' . $i++, PHP_EOL; } register_tick_function('test_tick'); test_tick(); // test_tick:0 $j = 0; declare (ticks = 1) { $j++; // test_tick:1 $j++; // test_tick: 2 sleep(1); // 停1秒后,test_tick:3 $j++; // test_tick:4 if ($j == 3) { // 条件表达式,不会执行ticks echo "aa", PHP_EOL; // test_tick:5 \n test_tick:6,PHP_EOL会计一次ticks } } // declare使用花括号后面所有代码无效果,作用域限定在花括号以内 echo "bbb"; // echo "ccc"; // echo "ddd"; //
댓글이 매우 자세해서 일일이 설명할 필요가 없습니다. 틱을 2로 설정하고 선언 아래의 명령문에 중괄호를 사용하지 않은 결과를 살펴보겠습니다.
function test_tick1() { static $i = 0; echo 'test_tick1:' . $i++, PHP_EOL; } register_tick_function('test_tick1'); $j = 0; // 此处不计时 declare (ticks = 2); $j++; // test_tick1:0 $j++; sleep(1); // 停1秒后 test_tick1:1 $j++; $j++; // test_tick1:2 if ($j == 4) { // 条件表达式,不会执行ticks // echo "aa", PHP_EOL; echo "aa"; // test_tick:10,test_tick1不执行,没有跳两步,如果用了,PHP_EOL,那么算两步,会输出test_tick1:3 } // declare没有使用花括号将对后面所有代码起效果,如果是require或者include将不会对父页面后续内容进行处理 echo "bbb"; // test_tick1:3 echo "ccc"; echo "ddd"; // test_tick1:4
선언이 이를 정의하는 후속 코드에 영향을 미치는 것을 볼 수 있지만, 주의해야 할 점은 다음과 같습니다. 페이지에 포함된 세트가 있는 경우 상위 페이지의 후속 코드에는 영향을 미치지 않습니다. Ticks=2를 정의한 후, Register_tick_function()에 의해 등록된 함수 코드는 두 개의 하위 수준 타이머 코드 다음에 한 번 실행됩니다.
테스트 코드:
https://github.com/zhangyue0503/dev-blog/blob/master/php/201911/source/PHP%E6%B2%A1%E6%9C%89%E5%AE%9A%E6%97%B6%E5%99%A8%EF%BC%9F.php
추천 학습:
php 비디오 튜토리얼위 내용은 PHP에서 타이머 효과를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사는 산 및 기본 데이터베이스 모델을 비교하여 특성과 적절한 사용 사례를 자세히 설명합니다. 산은 금융 및 전자 상거래 애플리케이션에 적합한 데이터 무결성 및 일관성을 우선시하는 반면 Base는 가용성 및

이 기사는 코드 주입과 같은 취약점을 방지하기 위해 PHP 파일 업로드 보안에 대해 설명합니다. 파일 유형 유효성 검증, 보안 저장 및 오류 처리에 중점을 두어 응용 프로그램 보안을 향상시킵니다.

기사는 내장 함수 사용, 화이트리스트 접근 방식 및 서버 측 유효성 검사와 같은 기술에 중점을 둔 보안을 향상시키기 위해 PHP 입력 유효성 검증에 대한 모범 사례를 논의합니다.

이 기사는 토큰 버킷 및 누출 된 버킷과 같은 알고리즘을 포함하여 PHP에서 API 요율 제한을 구현하고 Symfony/Rate-Limiter와 같은 라이브러리 사용 전략에 대해 설명합니다. 또한 모니터링, 동적 조정 요율 제한 및 손도 다룹니다.

이 기사에서는 PHP에서 암호를 보호하기 위해 PHP에서 Password_hash 및 Password_Verify 사용의 이점에 대해 설명합니다. 주요 주장은 이러한 기능이 자동 소금 생성, 강한 해싱 알고리즘 및 Secur를 통해 암호 보호를 향상 시킨다는 것입니다.

이 기사는 PHP 및 완화 전략의 OWASP Top 10 취약점에 대해 설명합니다. 주요 문제에는 PHP 응용 프로그램을 모니터링하고 보호하기위한 권장 도구가 포함 된 주입, 인증 파손 및 XSS가 포함됩니다.

이 기사는 PHP의 XSS 공격을 방지하기위한 전략, 입력 소독, 출력 인코딩 및 보안 향상 라이브러리 및 프레임 워크 사용에 중점을 둔 전략에 대해 설명합니다.

이 기사는 각각의 사용시기에 중점을 둔 PHP의 인터페이스 및 추상 클래스 사용에 대해 설명합니다. 인터페이스는 관련없는 클래스 및 다중 상속에 적합한 구현없이 계약을 정의합니다. 초록 클래스는 일반적인 기능을 제공합니다


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

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