La programmazione moderna ha manipolato a lungo e con successo variabili non tipizzate. Il tipo di variabile non può essere specificato in anticipo e modificato durante l'esecuzione del programma.
Questo concetto è diventato centrale nel paradigma di programmazione generale. All'inizio dell'era della programmazione, le lingue con la stessa solida fiducia esigevano dal programmatore una descrizione preliminare delle variabili e assicuravano rigorosamente che non ricevessero nulla di illegale. Il fatto che una variabile cambi il suo tipo, né i programmi né i linguaggi di programmazione avevano un indizio.
La funzione PHP empty () è l'inverso della funzione isset () e ha alcune peculiarità di utilizzo. Se non ci sono variabili, allora la prima funzione risponde positivamente a questo e il suo risultato è vero, e il secondo è negativo, cioè il suo valore è falso.
Per definizione, isset () è progettato per verificare l'esistenza di una variabile. Non importa cosa e come è stato assegnato alla variabile, la cosa principale è che è e non viene distrutto dalla funzione unset (). Il risultato della funzione isset () sarà positivo - true. È importante ricordare che se $ iVar = 0; allora isset ($ iVar) sarà vero, ma anche empty ($ iVar) sarà vero.
Nel primo caso, il risultato significa che la variabile esiste, nel secondo caso, la variabile è vuota, cioè il valore "0" in qualsiasi forma, se si tratta di una stringa ("0") o un numero (frazionario - 0.0 o intero - 0) è lo stesso: vuoto ($ iVar) sarà vero.
La pratica mostra che i linguaggi non tipizzati danno molta più libertà al programmatore, ma assumono che il suo atteggiamento nei confronti dell'algoritmo sia più responsabile.
PHP offre una sintassi moderna che mantiene una semantica consolidata, ha pochi errori, ma richiede un'attenzione particolare a se stessa. Ad esempio, una chiamata a qualsiasi funzione coinvolge un certo numero di parametri.
Chiamando una funzione, non è affatto necessario passare tutti i parametri, è possibile solo trasferirne una parte sostanziale. La funzione "deve" controllare l'esistenza e l'esistenza di tutti i parametri. Quelli di loro che mancano o hanno i valori sbagliati, è necessario portare all'aspetto normale, assegnare loro i valori desiderati.
In questo contesto, la funzione PHP empty () è essenziale. espressione:
= "1;2" + 20 $ a = "1; 2" + 20
assegna il valore $ 21 alla variabile $ a, poiché la prima parte dell'espressione sarà rappresentata come 1 e la seconda sarà 20.
Il risultato sarà del tipo numero e la funzione PHP vuota ($ a) avrà il risultato - falso, cioè la variabile $ a non è vuota.
In questo contesto, avendo la funzione:
funcTest ($ a = 0, $ b = 20)
quando si chiama:
$ res = funcTest ($ aVal, $ bVal)
avrà il desiderato, cioè il risultato della funzione. E quando chiami:
solo un parametro con il valore '$ aVal' cade nel corpo della funzione. $ bVal 'e molto probabilmente questo parametro sarà interpretato come una stringa di caratteri.
La sintassi del linguaggio ha un numero sufficiente di costruzioni e funzioni per lavorare con oggetti e matrici, ma dal punto di vista del controllo dell'esistenza e della presenza di significato, non ci sono particolari differenze rispetto alle variabili.
PHP empty (array) equivale a chiamare vuoto (variabile semplice). Tuttavia, per quanto riguarda gli oggetti ci sono considerazioni molto significative. Per quanto riguarda la verifica di un oggetto per esistenza (isset), la domanda non ha senso. Per quanto riguarda la funzione PHP empty (), la convenienza del suo utilizzo è discutibile.
Secondo la logica della programmazione orientata agli oggetti, l'oggetto ha il proprio contenuto e il proprio insieme di metodi. Solo l'oggetto stesso può dire vuoto o no, ma non una funzione di terze parti, anche se è inclusa nella sintassi della lingua.
Su questa base semplice ma legale, ogni oggetto dovrebbe essere considerato nel contesto della sua comprensione del "vuoto". Ad esempio, l'implementazione dell'oggetto "Elenco personale" comprende i record "Dipendente". Ma se non c'è un singolo dipendente, nella "Lista del personale" ci sono sempre opzioni per le posizioni di probabili impiegati.
A che livello usi qui la funzione di oggetto vuoto PHP? A livello di personale, tutto esiste, anche se non c'è un singolo dipendente. A livello "Dipendente", l'oggetto è già lì, anche se non è completamente riempito. Un oggetto non completamente riempito può essere attribuito a un oggetto vuoto. Non c'è alcun beneficio per lui dalla lista del personale.
A seconda dello stile di programmazione scelto, le funzioni PHP empty () ed isset () sono molto importanti per costruire un algoritmo sicuro e affidabile, ma per gli oggetti è ancora meglio avere la propria versione empty (), determinata dal suo contenuto.