2010-11-22 4 views
2

J'ai une fonction dans une classe qui interroge une base de données. Je crée la requête à la volée en utilisant des clauses where basées sur des variables.PHP: utilisation d'une méthode pouvant ou non avoir des paramètres

Dire que j'ai une méthode comme ceci:

function getBackups($from, $to, $clientid){ 

    //sql here 
    //add where clause if $from and $to not null... 

} 

Si je veux appeler cela quelque part dans une situation où je n'ai pas de ou à des variables que je voudrais simplement mettre backups- $> getBackups() mais je 'D obtiendra une erreur sur un paramètre manquant.

Si je fais ceci:

function getBackups($from = null, $to = null, $clientid = null){ 

    //sql here 
    //add where clause if $from and $to not null... 
} 

Sera-ce la solution? ou sera-t-il plus comme ça si je ne passe pas les paramètres?

$backups->getBackups($from = null, $to = null, clientid = null) 

Hope this sens,

Jonesy

+1

Votre solution en fournissant des valeurs par défaut est correcte. – tszming

+1

Le premier. Cependant, gardez à l'esprit l'ordre de vos paramètres, car ce sera important. Et si vous voulez mettre une seule fois l'un des paramètres, par exemple, la variable $ to, vous devrez écrire $ backups-> getBackups (null, 'the'); parce que la commande compte – DampeS8N

+0

merci DampeS8N pour cette info! – iamjonesy

Répondre

1

vous pouvez faire ce que vous dites:

function getBackups($from = null, $to = null, $clientid = null){ 

    //sql here 
    //add where clause if $from and $to not null... 
} 

un alors vous pouvez l'appeler comme juste:

$backups->getBackups() 

ou vous pouvez appeler

$backups->getBackups($from, $to, $clientid) 

Dans la fonction, vous pouvez vérifiez si les aprameters sont null (ou toute autre valeur par défaut que vous souhaitez utiliser) et exécutez le code en fonction des paramètres.

HTH concerne.

1
function getBackups($from = null, $to = null, $clientid = null){ 

    //sql here 
    //add where clause if $from and $to not null... 
} 

est la solution pour les fonctions avec des paramètres facultatifs, si c'est ce que vous voulez dire.

1

paramètres optionnels en php est aussi simple que cela:

function getBackups($from = null, $to = null, $clientid = null){ 

    //sql here 
    //add where clause if $from and $to not null... 
} 

Et pour l'appeler, vous appelez simplement:

backups->getBackups(); 

ou

backups->getBackups("from"); 

si vous incluez des arguments à la fonction, ils remplaceront les valeurs par défaut dans l'ordre où ils apparaissent.

Questions connexes