> On 28 Feb 2025, at 23:57, Bilge <bi...@scriptfusion.com> wrote:
> 
> Generics 

Yes, I am aware that generics are being worked on. However, generics wouldn't 
provide structural interfaces for arrays. At most it would provide a way to 
infer/define generic types for array keys and/or values.

I guess I should've provided a code example straight away. Here's what I have 
in mind:

```php
declare(strict_types=1);

shape MyArray {
    "id": int;
    "name": string;
}

function doArrayStuff(MyArray $array) { ... }

doArrayStuff(['id' => 1,   'name' => 'Alwin']); // Works, array conforms to 
shape
doArrayStuff(['id' => '1', 'name' => 'Alwin']); // Fails, 'id' should be int
```

The best that Generics would be able to offer for arrays is:

```php
function doArrayStuff(array<string, int|string> $array) { ... }

doArrayStuff(['id' => 1,   'name' => 'Alwin']); // Works
doArrayStuff(['id' => '1', 'name' => 'Alwin']); // Works
```

Alwin

Reply via email to