実行時に、関数からその関数を実行せずに必要な引数の数を知るにはどうすれば良いですか?

<?php

function myFunc($a, $b, $c)
{
    return "$a, $b and $c!";
}

このような関数を定義したとき、$a, $b, $c という三つの引数を必要とするので「3」という数が知りたいです。

また、メソッドについても同じように調べられますか?

<?php

class Hoge
{
    public static function fuga ($a, $b)
    {
        return "fuga: $a and $b!";
    }

    public function piyo ($a, $b, $c)
    {
        return "piyo: $a, $b and $c!";
    }
}