RFC: Make empty() a Variadic
Voici une courte RFC autour de la construction empty() :
- Nom : Make
empty()a Variadic - URL : https://wiki.php.net/rfc/variadic_empty
- Version cible : PHP 7
Cette RFC partait de l’idée qu’il est commun de vouloir utiliser empty() sur plusieurs variables, en vue de déterminer si l’une d’entre elles est vide ou si aucune ne l’est ; ce qui passe actuellement par une portion de code de ce type :
if (empty($a) || empty($b) || empty($c)) {
// Une des variable est vide
}
if (!empty($a) && !empty($b) && !empty($c)) {
// Aucune variable vide
}Pour simplifier l’écriture de ce type de test, cette RFC proposait de rendre empty() variadique (comme l’est déjà isset()), ce qui permettrait d’utiliser l’écriture suivante :
if (empty($a, $b, $c)) {
// Une des variable est vide
}
if (!empty($a, $b, $c)) {
// Aucune variable vide
}Passer plusieurs expressions à empty() reviendrait à effectuer un OR entre empty() de chaque expression.
Les votes ont été ouverts le 7 mars 2015 pour être clôturés le 21 mars. Considérant que cette proposition apporterait un fort risque de confusion (est-ce qu’on vérifie qu’au moins une donnée est vide ? Ou est-ce qu’on vérifie que toutes les données sont vides ?), nous avons exprimé un avis négatif sur internals@.
Une majorité des 2/3 était requise pour l’adoption de cette RFC et elle a été rejetée, avec 26 votes « pour » et 26 votes « contre ».