PHP – Se la variabile non è vuota, fai un eco del codice html

Vorrei mostrare un codice html se una variabile non è vuota, altrimenti vorrei non visualizzare nulla.

Ho provato questo codice ma non funziona:

 Website: <a href="http://" target="_blank">  

 if (!empty($web)) { ?> Website:   

http://us.php.net/manual/en/function.empty.php

isset restituirà true anche se la variabile è “”. isset restituisce false solo se una variabile è nullo . Cosa dovresti fare:

 if (!empty($web)) { // foo } 

Questo verificherà che la variabile non sia vuota.

Spero che questo ti aiuti

Basta usare if ($web) . Questo è true se la variabile ha un valore di verità .

Non hai bisogno di isset o empty poiché sai che la variabile esiste, dal momento che hai appena impostato la riga precedente.

 if(!empty($web)) { echo 'Something'; } 
 if($var !== '' && $var !== NULL) { echo $var; } 

spero che funzionerà anche tu, prova a usare “is_null”

  ....html code here  

http://php.net/manual/en/function.is-null.php

spero che ti si addica ..

Non vedo come if(!empty($var)) possa creare confusione, ma sono d’accordo sul fatto che if ($var) è più semplice. – vanneto 8 marzo 12 alle 13:33

Perché empty ha lo scopo specifico di sopprimere gli errori per le variabili inesistenti. Non vuoi sopprimere gli errori a meno che non sia necessario. La guida definitiva isset di PHP E empty spiega il problema in dettaglio. – deceze ♦ 9 marzo 12 alle 1:24

Concentrandosi sulla parte relativa alla soppressione degli errori, se la variabile è un array in cui una chiave a cui si accede può o non può essere definita :

  1. if(empty($web['status'])) o if($web['status']) produrrebbe:

    Errore : indice indefinito: stato

  2. Per accedere a quella chiave senza errori di triggerszione:

    1. if(isset($web['status']) && $web['status']) o
    2. if(isset($web['status']) && !empty($web['status'])) .

    Perché? La seconda condizione non è testata se la prima ( isset ) è FALSE .

Tuttavia, come sottolineato in dec,, un valore di verità di una variabile definita rende !empty Empty ridondante, ma è comunque necessario ricordare che PHP assume i seguenti esempi come FALSE :

  • null
  • '' o ""
  • 0.0
  • 0
  • '0' o "0"
  • '0' + 0 + !3

Quindi se zero è uno stato significativo che vuoi rilevare, dovresti effettivamente usare confronti stringa e numerici:

  1. Rilevazione senza errori e zero :

     if(isset($web['status'])){ if($web['status'] === '0' || $web['status'] === 0 || $web['status'] === 0.0 || $web['status']) { // not empty: use the value } else { // consider it as empty, since status may be FALSE, null or an empty string } } 

    La condizione generica ( $web['status'] ) dovrebbe essere lasciata alla fine dell’intera dichiarazione.

Stai utilizzando isset , ciò che isset controlla è se la variabile è impostata (‘exists’) e non è NULL . Quello che stai cercando è empty , che controlla se una variabile è vuota o meno, anche se è impostata. Per controllare cosa è vuoto e cosa non dare un’occhiata:

http://php.net/manual/en/function.empty.php

Controlla anche http://php.net/manual/en/function.isset.php per cosa esattamente fa isset , così capisci perché non fa ciò che ti aspetti che faccia.

Il tuo problema è nell’uso di the_field() , che è per Advanced Custom Fields, un plugin per wordpress.

Se vuoi usare un campo in una variabile devi usare questo: $web = get_field('website'); .

Sembra che la gente stia complicando un po ‘questo. Tornando alla domanda originale, ” … se la variabile non è vuota, fai un po ‘di codice html”. “Vorrei mostrare un codice html se una variabile non è vuota, altrimenti non vorrei visualizzare nulla.

Modo semplice:

  

Se la variabile non è vuota, verrà visualizzato “Un codice HTML qui”. Se è vuoto, non succederà nulla.