Je teste un champ de demande de publication sur un script qui peut être appelé à partir de la ligne de commande ou via HTTP en tant que requête GET ou POST. En tant que tel, $_POST
peut être indéfini. Existe-t-il un moyen simple de réécrire cette déclaration?Test de pré-condition à jour?
if (isset($_POST) && isset($_POST['function']) && $_POST['function'] == "login"):
je pouvais supprimer les erreurs avec le @
-operator - est que les mauvaises pratiques?
if (@$_POST['function'] == "login"):
je pourrais utiliser l'opérateur coalesce null PHP 7.0, mais qui introduit un inutile littéral purement conçu pour lancer une false
:
if (($_POST['function'] ?? null) == "login"):
Probablement pas trop populaire d'une opinion, mais je pense que cela est un cas où l'utilisation de la suppression d'erreur est justifiée. Les implications lorsque cet indice n'existe pas sont évidentes. –
Des variantes de cette question sont demandées de temps en temps. Je recommande toujours d'arrêter de prendre soin, d'écrire une fonction wrapper personnalisée et d'utiliser simplement 'if (get_input ('function') == 'login')'. –
@DanielSloof Pas besoin d'utiliser 'php_sapi_name()' – RiggsFolly