2
public function makeTweet( $DatabaseObject, $TextObject, $MessageObject)
{
    if( $DatabaseObject == NULL )
    {
        $DatabaseObject = new Database();
        $TextObject = new Text();
        $MessageObject = new Message();
    }
    $TweetObject = new ControlTweet();        
    $TweetObject->setObjects($DatabaseObject, $TextObject, $MessageObject);
    return $TweetObject;
}
4

3 回答 3

1

您不能在 PHP 中重载函数。请参阅此页面以供参考:http ://www.daniweb.com/web-development/php/threads/19978/overloading-php-functions

于 2012-04-05T20:17:07.513 回答
1

您可以在函数声明中添加可选参数,例如:

public function makeTweet( $DatabaseObject, $TextObject, $MessageObject = null)

现在你可以这样做:

$obj->makeTweet($db, $text, $messageObj);

或者

$obj->makeTweet($db, $text);

这是您可以在 PHP 中获得的最接近的值。

于 2012-04-05T20:17:15.777 回答
-1

PHP 函数可以“重载”。在函数中使用func_get_args和设置任何变量。

您还可以将关联数组作为单个变量提交。然后你可以在函数内部使用 extract 来制作友好的变量。

$vars = array('key1'=>'value1','key2'=>'value3');

function function_name($v){
     extract($v);

    //do something
}

要使函数表现不同,您需要确定变量是什么。通过这种方式,您可以反映重载的想法。

于 2012-04-05T20:21:31.313 回答