2010-11-22 30 views
2

データベースにクエリを行うクラスに関数があります。変数に基づいてwhere句を使用して、その場でクエリを作成します。PHP:パラメータがある場合とない場合があるメソッドを使用する

は、私はこのような方法があるだろう:私は(何からかの変数に私は単に置く$ backups-> getBackupsを持っていない状況では、このどこかを呼び出したい場合は

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

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

} 

を)が、I欠落しているパラメータについてはエラーが表示されます。

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

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

が、これは解決策を次のようになります。

私はこれを行う場合は?私がパラメータを渡していない場合、これはもっと似ていますか?それはあなたが何を意味するかであるならば、これは理にかなって

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

希望、

Jonesy

+1

デフォルト値を指定して解決しても問題ありません。 – tszming

+1

最初です。しかし、重要なことは、パラメータの順序に注意してください。パラメータの1つだけを$ to変数に入れる場合は、$ backups-> getBackups(null、 'the to')と書く必要があります。その注文については、 – DampeS8N

+0

DampeS8Nに感謝します! – iamjonesy

答えて

1

あなたが言うことを行うことができます。

$backups->getBackups() 

またはあなたができる関数内

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

を呼び出すことができます。

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

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

は、あなただけのようにそれを呼び出すことができますaprametersがnull(または使用したい他のデフォルト値)かどうかをチェックし、パラメータに応じてコードを実行します。

HTHについてPHPで

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

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

は、オプションのパラメータを持つ関数のためのソリューションです。

1

オプションのパラメータ、このように簡単です:

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

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

そして、それを呼び出すために、あなただけの呼び出し:

backups->getBackups(); 

または

backups->getBackups("from"); 

をあなたが任意の引数を含める場合関数には、表示された順序でデフォルト値が置き換えられます。

関連する問題