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


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

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-05 02:20 +0200
Organization Aioe.org NNTP Server
Message-ID <nleugi$de0$1@gioia.aioe.org> (permalink)
References (5 earlier) <525ccf96-beff-415a-90fe-88df9c937a4e@googlegroups.com> <nldv83$pmh$1@gioia.aioe.org> <bcb37bb4-03bb-4e6a-8486-73d7d328bb99@googlegroups.com> <nle4g3$12v7$1@gioia.aioe.org> <d1a9a77b-49d8-4eb4-92bc-8eadb241cbb2@googlegroups.com>

Show all headers | View raw


Il 04/07/2016 19:52, fmassei@gmail.com ha scritto:
> On Monday, July 4, 2016 at 12:56:38 PM UTC-4, alex wrote:
>> Il 04/07/2016 17:47, fmassei@gmail.com ha scritto:
>>> Non.è.così.che.funzionano.gli.array.in.PHP.
>>> Per fare quello che vuoi te l'array_map dovrebbe entrare in try-catch ogni
>>> ciclo, che sarebbe un'enorme idiozia.
>>
>> ...il motivo?
>>
>
> ... è così in ogni linguaggio ...
> Per entrare in un try/catch devi creare un nuovo contesto, cosa che, non fosse
> già pesante abbastanza da sola, impedisce in un ciclo for di ottimizzare con
> clobbering o vettorizzazioni (e/o pipelines se gira compilato, o in JIT).
> Non è roba di lana caprina, parliamo di ordini di grandezza di differenza
> nelle performances.
>

Cmq sono strutture che quando servono (molto spesso) vanno implementate, 
e sempre a carico dello sviluppatore (come se non lavorasse già abbastanza).
Con i moderni computer poi tutto questo calo di prestazioni diventa 
sempre più irrisorio.

>> Non ci sono appunto, quindi servirebbe conoscere la key (nome del campo
>> se si tratta di un DB) per identificare senza troppa fatica qual'è il
>> valore non conforme.
>>
>
> Continuo a non capire. La tua parte di codice PHP che legge decide come
> deserializzare, quindi semmai il problema sarebbe lì, e non è certo
> instrinseco.

array_map(
     function($str){
         if (!is_string($str)) {
             throw new Exception($str.' non è una stringa');
         }
         // ...
     },
     spyc::yamlLoad('data.yml')
);

PHP Fatal error:  Uncaught Exception: 2 non è una stringa

Intanto andiamo a vedere cosa c'è nel file data.yml:
primo: uno
secondo: 2
terzo: tre

Il problema infatti risiede nel secondo elemento.
Ma se il file yaml, invece di tre entries, ne contenesse centinaia, per 
trovare il *cattivo* (senza che venga indicata la key) sarebbe molto più 
difficile.
Capito il concetto?

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