php / php/php-src

Change in variable assignment behavior as argument

Ouverte
#22,256 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Bug Category: Engine Status: Verified
Langage dominant
C
Étoiles
40.4k
Forks
8.2k
Merge moyen
2 j 13 h
PR mergées (30 j)
96

Description

Description

The following code:

<?php
$text = 'abc';
$offset = 0;
$char = substr($text, $offset, $offset = strpos($text, 'b', $offset));
var_dump($char);

Resulted in this output with PHP 8.2.31 :

string(1) "a" 

Resulted in this output with PHP 8.4.21 :

string(1) "b" 
PHP Version
PHP 8.2.31 (cli) (built: May  8 2026 07:20:38) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.31, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.31, Copyright (c), by Zend Technologies

PHP 8.4.21 (cli) (built: May  8 2026 05:56:48) (NTS)
Copyright (c) The PHP Group
Built by Debian
Zend Engine v4.4.21, Copyright (c) Zend Technologies
    with Zend OPcache v8.4.21, Copyright (c), by Zend Technologies
Operating System

PHP 8.2.31 : Debian 12.14 - PHP 8.4.21 : Debian 13.5

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 reproduire l’exemple avec PHP 8.2.31 et 8.4.21, puis examinez en quoi l’évaluation des arguments et l’affectation à $offset diffèrent entre les versions. Déterminez quel résultat correspond à la sémantique prévue de PHP et identifiez le comportement pertinent de l’interpréteur avant d’ajouter une couverture de régression pour l’exemple.

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é
Calme
Clarté
Plutôt claire
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

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