J'adore faire ce genre de choses en Perl : $foo = $bar || $baz
d'attribuer $baz
à $foo
si $bar
est vide ou indéfinie. Vous avez également $foo ||= $bletch
qui n'attribuera que $bletch
à $foo
si $foo
n'est pas défini ou est vide.
L'opérateur ternaire dans cette situation est fastidieux et fatigant. Il y a sûrement une méthode simple et élégante disponible en PHP ?
Ou la seule réponse est une fonction personnalisée qui utilise isset() ?
1 votes
En rapport avec Examen du code : codereview.stackexchange.com/q/12722/31433
1 votes
En attendant, les opérateurs Perl ayant la fonctionnalité souhaitée sont les suivants
//
et//=
et ils existent depuis Perl v5.10.0. L'original||
et||=
testent la valeur logique, et non la définition.1 votes
@Palec, pourquoi une question vieille de 4 ans avec 29 upvotes serait-elle identifiée comme un doublon d'une question vieille d'un an avec 6 upvotes (qui a elle-même été marquée comme un doublon d'une autre question ?) Je pense qu'il y a une grande valeur à garder cette question, car le titre est plus générique (ne fait pas référence à la réponse, par exemple : isset()).
0 votes
Ce sont des copies claires et exactes. J'avoue que je n'ai pas beaucoup réfléchi à laquelle des deux devait être l'originale, j'étais au milieu de quelque chose d'autre, faire un lien entre les deux était le but. Je retire mon VTC.
0 votes
Un duplicata exact, marqué (par erreur) comme un duplicata d'une autre question : Abréviation PHP de isset() ?
0 votes
vos noms de variables me perturbent. Pourquoi vous n'utilisez pas "x" "y" "z" ... ??
0 votes
EdwardBlack En fait, "foo", "bar", "baz" et (sans doute) "bletch" sont assez courants dans le monde de la programmation - à peu près aussi courants que "x", "y" et "z" dans le contexte des noms de variables, de fonctions et de méthodes.