


Explication détaillée de l'utilisation de la déclaration php
Oct 22, 2020 am 09:38 AML'utilisation générale de php declare est "declare(ticks=N);", sa fonction est que le moteur Zend exécutera la fonction enregistrée par "register_tick_function()" à chaque fois qu'il exécute une instruction de bas niveau .
Recommandé : "Tutoriel vidéo PHP"
Explication détaillée de la fonction de déclarer en php
L'usage général est declare(ticks=N);
Prenons declare(ticks=1) comme exemple. Cette phrase a deux fonctions principales :
1. . Chaque fois que le moteur Zend exécute une instruction de bas niveau, la fonction enregistrée par register_tick_function() est exécutée une fois.
peut être grossièrement compris comme l'exécution de la fonction de tick enregistrée à chaque fois qu'une phrase de code php est exécutée (par exemple : $num=1;).
Une utilisation consiste à contrôler le temps d'exécution d'un certain morceau de code. Par exemple, bien que le code suivant ait une boucle infinie à la fin, le temps d'exécution ne dépassera pas 5 secondes.
Exécutez 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); Chaque fois qu'une instruction de bas niveau est exécutée, le processus sera vérifié pour voir. s'il y a des signaux non gérés. , le code de test est le suivant :
Exécutez php signal.php
Ensuite, CTL+c ou kill -SIGINT PID fera sortir le code en cours d'exécution du fichier. boucle infinie pour exécuter la fonction enregistrée par pcntl_signal. L'effet est que la sortie du script imprime "Obtenir le signal SIGINT et exi" exit
<?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; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian

Comment configurer Visual Studio Code (VS Code) pour le développement PHP
