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


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

Re: gestione degli array lacunosa

From alex <1j9448a02@lnx159sneakemail.com.invalid>
Newsgroups it.comp.www.php
Subject Re: gestione degli array lacunosa
Date 2016-07-04 12:15 +0200
Organization Aioe.org NNTP Server
Message-ID <nldcvu$1mja$1@gioia.aioe.org> (permalink)
References <nld63r$1b3t$1@gioia.aioe.org> <dtuotnF19b2U1@mid.individual.net>

Show all headers | View raw


Il 04/07/2016 11:34, Alessandro Pellizzari ha scritto:
> 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?
>

Visto la direzione che sta prendendo php, è il caso di farle complete le 
cose.

>> 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.
>

Che avrebbe, oltre al valore, una specifica key, che array_map (non la 
closure) dovrebbe conoscere.

> 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).
>

Proprio questo vorrei evitare.
Sarebbe il caso che php inizi a fare dei controlli in modo intrinseco.
Ne conseguirebbe un codice più pulito; è il caso di iniziare a pensarci!!!

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

E una volta che ho catturato l'errore (che peraltro non è il mio 
obiettivo) che me ne faccio?

>> 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'è.
>

Quasi quasi chiedo di entrare nel team, a questo punto :)

Back to it.comp.www.php | Previous | NextPrevious in thread | Next 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