通过省略函数参数来调用函数

时间:2017-05-22 13:23:56

标签: php

function givemeposts($user, $pos){
$sql = "select * from posts where user ='" . $user . "' and pos = '" . $pos . "' order by inde";    
...

givemeposts('public', 'home01'); // this works as usual

现在我需要调用上面的函数,但没有$pos param,即$pos值是什么。

类似的东西:

givemeposts('public', whatever);

有什么办法吗?

3 个答案:

答案 0 :(得分:1)

您可以使用默认参数:

function givemepost( $user , $pos=NULL ){
    if($pos==NULL){
        //some code
    }lese{
         $sql = "select * from posts where user ='" . $user . "' and pos = '" . $pos . "' order by inde";    
    }
}

这样你可以用一个参数调用函数,并在if分支中设置函数必须做的事情。

答案 1 :(得分:1)

在PHP中,您可以设置default values for arguments

  

默认值必须是常量表达式,而不是(例如)变量,类成员或函数调用。

     

请注意,使用默认参数时,任何默认值都应位于任何非默认参数的右侧;否则,事情将无法按预期发挥作用。

如果你这样做,$ pos的默认值将是''(一个空字符串):

function givemeposts($user, $pos = ''){

或者你可以使用其他东西而不是空字符串,无论你想要什么价值:

function givemeposts($user, $pos = 'SomeValue'){

然后你可以简单地调用你的函数:

givemeposts($user);

答案 2 :(得分:1)

你可以试试这个:

function givemeposts($user, $pos = '')
{
    if(!empty($pos)) {
        $pos = "AND pos = '" . $pos . "'";
    }
    $sql = "SELECT * FROM posts WHERE user ='" . $user . "' $pos ORDER BY inde";

}

givemeposts('public');