7
votes

Erreur d'argumentation manquante de la fonction PHP

Ma fonction de validation ressemble à celle xxx pre>

Exemple d'appel de fonction p> xxx pré>

Comme vous le voyez, ma fonction de validation contient 3 variations d'entrée. Je n'utilise pas le deuxième var - $ Data2 Souvent, c'est pourquoi la définir à 0 par défaut. Mais lorsque j'appelle cette fonction comme étant donné l'exemple (autant que je sache, cela signifie que $ data = $ lname, $ lname, $ data2 = 0, $ Type = 'Name') Obtenir un message d'erreur P>

Missing argument 3 ($type) for validate() 


1 commentaires

Appelez comme Valider ($ LName, 0, 'nom')


5 Réponses :


6
votes

Vous devez au moins définir le type $ dans cette ligne: xxx

à null ou '' comme vous pouvez le voir ici : xxx

php vous permet de définir une valeur pour les paramètres, mais vous ne pouvez pas définir un paramètre sans une valeur prédéfinie après paramètre (s) qui a une valeur prédéfinie. Donc, si vous devez toujours spécifier le troisième paramètre, vous devez basculer le deuxième et le troisième comme celui-ci: xxx


0 commentaires

23
votes

argument manquant 3 ($ Type) pour valider ()

toujours liste des arguments facultatifs comme derniers arguments. Puisque PHP n'a pas nommé de paramètres ni "surcharge ala java", c'est le seul moyen: xxx


0 commentaires

0
votes

de http://php.net/manual/fr/funcks.arguments.php

Notez que lorsque vous utilisez des arguments par défaut, toutes les valeurs par défaut doivent être à droite de tout argument non par défaut; Sinon, les choses ne fonctionneront pas comme prévu

Vous devez basculer les deuxième et troisième arguments de la fonction, ce qui rend l'argument facultatif le dernier. Donc, il devient: xxx


0 commentaires

0
votes
if ($result = validate($lname, 'name','','','') !== true)

0 commentaires

0
votes

Notez que commencer par PHP 7.1, cela lancera une erreur PHP mortelle, pas seulement un avertissement: xxx

Plus d'infos: http://php.net/manual/fr/migration71.incompatible.php


0 commentaires