Comment définir une valeur par défaut dans une chaîne dans PHP si une autre chaîne est vide?

Le meilleur exemple serait de vous montrer comment ceci est résolu en Javascript:

var someString = someEmptyString || 'new text value'; 

Dans cet exemple de javascript, nous avons détecté que 'someEmptyString' est vide et défini automatiquement la valeur sur 'new text value'. Est-ce possible en PHP et quel est le moyen le plus court (code) de le faire?

Voici comment je le fais maintenant:

 if ($someEmptyString == "") $someString = 'new text value'; else $someString = $someEmptyString; 

Cela m'échappe depuis un certain temps et je serais très reconnaissant si quelqu'un connait une meilleure façon de le faire. Je vous remercie!

Vous pouvez utiliser l' opérateur ternaire ?: .

Si vous avez PHP 5.3, c'est très élégant:

 $someString = $someEmptyString ?: 'new text value'; 

Avant 5.3, il doit être un peu plus détaillé:

 $someString = $someEmptyString ? $someEmptyString : 'new text value'; 
 $someString = (!isSet( $someEmptyString ) || empty( $someEmptyString ) )? "new text value" : $someEmptyString; 

Je pense que ce serait la façon la plus correcte de le faire. Vérifiez si cette var est vide ou si elle n'est pas définie et fonctionne.

C'est encore un peu de code, mais vous ne devriez pas avoir d'avertissements ou d'erreurs PHP lors de l'exécution.

Vous pouvez utiliser l' opérateur ternaire

 $someString = $someEmptyString ?: "New Text Value"; 

Alors que le ternaire est plus clair ce qui se passe, vous pouvez également définir la variable comme celle-ci

 ($someString = $someEmptyString) || ($someString = "Default"); 

Fonctionne dans toutes les versions PHP, vous pouvez étendre cette option pour utiliser plus d'une option en cas d'échec facilement

 ($someString = $someEmptyString) || ($someString = $someOtherEmptyString) || ($someString = "Default"); 

Que je trouve personnellement plus lisible que son équivalent ternaire