PHP(question:1114769670)

まだ開かれてないけど既に回答が2つ程ついているし,幾らなんでもトンデモ回答はつきようがないだろうということで回答はせず.

function foo($param1, $param2 = null) {}

のように,オプショナルにしたい引数に初期値を設定しておくのがオーソドックスな方法.
Javaのように引数(の型や数)によって処理内容を変更したいのであれば,func_get_num()で,与えられた引数の個数を確認できる*1.ただし,初期値を設定する方法と比べると,関数コール1回分重くなる.
初期値を設定する方法だと,初期値で設定されたnullと引数として与えられたnullの区別ができない((nullじゃなくて0でも''(空文字列)でも同様))ので,引数としてあらゆる値が与えられる可能性を考慮するのであれば,func_get_num()func_get_args()を使用するメリットがなきにしもあらず.

というか質問者の方の過去の質問を見ると,折角の詳細なオンラインマニュアルを全く活用されていないご様子*2.質問する分のポイントで参考書の1つを買うなり,オンラインマニュアルをちゃんと読めばいいと思ってしまうのだが,余計なお世話か…
あと(他の質問の)回答者の方はなぜ,わざわざ本家サイトでなくミラーやコピーサイトのURLを貼るんだろう.本家・ミラーの方が更新が確実だし,他言語のページも99%用意されている,おまけにかなり便利な(そうでないものもあるけど)user contribute notesもあるのに.
まあ単に,検索でトップに来るURLを貼ってるだけなんだろうけど,オンライン・マニュアルでも関数名が分かれば該当ページは至極簡単に検索できるのだから…

*1:Javaなら個別に関数=メソッドを定義すればいいので,実際には少し…かなり違うが…

*2:ページによると日本語訳が分かりにくいこともあることはあるが…