php / php/php-src

register_tick_function() not work in external file

Ouverte
#19,275 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Feature Status: Needs Triage
Langage dominant
C
Étoiles
40.4k
Forks
8.1k
Merge moyen
2 j 13 h
PR mergées (30 j)
96

Description

+ php main.php | grep f2 || echo "f2 function not appear"
f2 function not appear

Why?

Here are some details

+ ls -1
f2.php
main.php



+ cat main.php 
<?php
declare(ticks=1);
require 'f2.php'; // external file

register_tick_function(
    function () {
        debug_print_backtrace();
        echo "\n";
    }
);

function f1() {
    f2();
}

f1();



+ cat f2.php 
<?php
declare(ticks=1);
function f2() {}



+ php main.php 
#0 /tmp/tmp.UFjE757TrJ/main.php(9): {closure}()

#0 /tmp/tmp.UFjE757TrJ/main.php(13): {closure}()
#1 /tmp/tmp.UFjE757TrJ/main.php(16): f1()

#0 /tmp/tmp.UFjE757TrJ/main.php(16): {closure}()

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par exécuter la reproduction signalée php main.php | grep f2 || echo "f2 function not appear" et inspectez main.php ainsi que f2.php, requise en externe. Comparez les callbacks de tick autour de l’appel à f2() et déterminez si l’absence du callback est attendue ou indique un bug d’exécution ; documentez le comportement confirmé et ajoutez un test de régression ciblé si nécessaire.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
php
Domaine
compilers
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.