Ma fonction de validation ressemble à celle Exemple d'appel de fonction p> 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()
5 Réponses :
Vous devez au moins définir le type $ dans cette ligne: à php vous permet de définir une valeur pour les paramètres, mais vous ne pouvez pas définir un paramètre sans forte> une valeur prédéfinie null code> ou
'' code> comme vous pouvez le voir ici : p>
argument manquant 3 ($ Type) pour valider () P>
toujours em> 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: p>
xxx pré> blockquote>
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 p> BlockQuote>
Vous devez basculer les deuxième et troisième arguments de la fonction, ce qui rend l'argument facultatif le dernier. Donc, il devient: p>
xxx pré> p>
if ($result = validate($lname, 'name','','','') !== true)
Notez que commencer par PHP 7.1, cela lancera une erreur PHP mortelle, pas seulement un avertissement: Plus d'infos: http://php.net/manual/fr/migration71.incompatible.php p> p>
Appelez comme
Valider ($ LName, 0, 'nom') code>