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;
}
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 に答える