Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #21014

Re: gestione degli array lacunosa

From Alessandro Pellizzari <shuriken@amiran.it>
Newsgroups it.comp.www.php
Subject Re: gestione degli array lacunosa
Date 2016-07-04 10:34 +0100
Message-ID <dtuotnF19b2U1@mid.individual.net> (permalink)
References <nld63r$1b3t$1@gioia.aioe.org>

Show all headers | View raw


On 04/07/2016 09:18, alex wrote:

> function test(callable[] $value) {}
>
> PHP Parse error:  syntax error, unexpected '[', expecting variable
> (T_VARIABLE)

> Siamo alla versione 7, ma di array tipizzati nemmeno l'ombra.
> VisualBasic c'è li aveva già negli anni 90.

Puoi tornare a usare VisualBasic, se vuoi. Nessuno ti ferma, eh.

VB era a tipizzazione statica e forte.
PHP è a tipizzazione debole (il 7 la rende opzionalmente forte) e dinamica.

Cosa ti fa pensare di poterli confrontare?

> function test(Abc $value) {}
>
> $arr = array(new Abc, 'number' => 2, new Abc);
> array_map("test", $arr);
>
> Fatal error:  Uncaught TypeError: Argument 1 passed to test() must be an
> instance of Abc, integer given

Che è corretto.

> Almeno la key dell'elemento non valido ('number') potrebbe essere
> indicata...

È una closure, non sa niente dell'indice, e array_map fa il suo: chiama 
la funzione con un elemento dell'array.

Se sai che la tua struttura dati è dinamica, non forzare il tipo.
Se non sai se è dinamica, sviluppa in modo difensivo (con un foreach e 
degli if, per esempio).

In PHP7 puoi usare try...catch anche con molti tipi di errore (tra cui 
questo, visto che te lo dice anche lui: Uncaught TypeError)

> Con la versione 8 di un ipotetico anno 2018 si riusciranno a colmare
> certe lacune?

Forse se inizi a segnalare i bug agli sviluppatori invece di lamentarti 
semplicemente sui newsgroup, qualche possibilità c'è.

Bye.

Back to it.comp.www.php | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

gestione degli array lacunosa alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-07-04 10:18 +0200
  Re: gestione degli array lacunosa alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-07-04 17:26 +0200
    Re: gestione degli array lacunosa fmassei@gmail.com - 2016-07-04 08:47 -0700
      Re: gestione degli array lacunosa alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-07-04 18:56 +0200
        Re: gestione degli array lacunosa fmassei@gmail.com - 2016-07-04 10:52 -0700
          Re: gestione degli array lacunosa fmassei@gmail.com - 2016-07-04 20:08 -0700
            Re: gestione degli array lacunosa alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-07-05 11:20 +0200
              Re: gestione degli array lacunosa alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-07-05 11:57 +0200
          Re: gestione degli array lacunosa alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-07-05 02:20 +0200
  Re: gestione degli array lacunosa alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-07-04 12:15 +0200
    Re: gestione degli array lacunosa fmassei@gmail.com - 2016-07-04 05:22 -0700
      Re: gestione degli array lacunosa alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-07-04 16:26 +0200
        Re: gestione degli array lacunosa fmassei@gmail.com - 2016-07-04 07:50 -0700
  Re: gestione degli array lacunosa Alessandro Pellizzari <shuriken@amiran.it> - 2016-07-04 10:34 +0100

csiph-web