php / php/php-src

Array construct/destruct should warn at least for duplicate keys

Offen
#9,848 6 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Feature Status: Requires RFC
Vorherrschende Sprache
C
Sterne
40.4k
Forks
8.1k
Ø Merge
2 T. 13 Std.
Gemergte PRs (30 T.)
96

Beschreibung

Description
$arr = ['4', 'x' => 5];

// construct with duplicate keys
var_dump(['x' => 4, 'x' => 6]);
var_dump([2 => 4, 2.0 => 6]);

// spread operator leading to duplicate keys
var_dump(['x' => 4, ...$arr]);

// destruct with duplicate keys (it is safe to do, but if same key should be assigned to another variable too, it can be done after the destruct)
['x' => $a, 'x' => $b] = ['x' => 10];
var_dump([$a, $b]);

https://3v4l.org/NTFPM

all cases should emit at least warning if not an error

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die Beispiele zur Konstruktion von Schlüsselduplikaten, zu Spread und Destrukturierung aus dem Issue einschließlich des verknüpften Falls auf 3v4l.org zu reproduzieren. Verfolge die Verarbeitung von Array-Schlüsseln durch den PHP-Interpreter und identifiziere die relevanten Tests oder Einstiegspunkte; abgeschlossen ist die Aufgabe, wenn jeder aufgeführte Fall mit doppelten Schlüsseln mindestens eine Warnung oder einen Fehler ausgibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
php
Bereich
compilers
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.