Angeben von Schlüsseln in Array-Form in PHPstanPhp

PHP-Programmierer chatten hier
Guest
 Angeben von Schlüsseln in Array-Form in PHPstan

Post by Guest »

Ich möchte eine Funktion mit Anmerkungen versehen, die ein Array mit mindestens dem Schlüssel „a“ annimmt und die gleiche Array-Form mit dem neu hinzugefügten Schlüssel „x“ zurückgibt. Ich habe versucht, die Typkreuzung wie folgt zu verwenden:

Code: Select all

/**
* @template T of array{a: string}
* @param T $p
* @return T&array{x: int}
*/
function addXToArray(array $p) {
$p['x'] = strlen($p['a']);
return $p;
}

$result = addXToArray(['a' => 'hello']);
Das ist offensichtlich nicht der richtige Weg, denn PHPstan beschwert sich (auf Ebene 10 mit „PHPDoc-Typen als sicher behandeln“):

Code: Select all

PHPDoc tag @return contains unresolvable type.
Ich verwende Vorlage T, weil ich alle anderen Schlüssel beibehalten muss, die möglicherweise im Argument vorhanden sind.
Wie mache ich das richtig? Funktion mit Anmerkungen versehen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post