PHP 5 では、マジック メソッドを使用したり、一部のクラスをオーバーロードしたりできます。C++ では、引数の型が異なる限り、存在する関数を実装できます。PHPでこれを行う方法はありますか?
私がやりたいことの例はこれです:
class a {
function a() {
$this->list = array("1", "2");
}
}
$blah = new a();
count($blah);
何とか2を返したいと思います.IEはクラス内の特定の配列の値を数えます。したがって、C++ では、これを行う方法は次のようになります。
int count(a varName) { return count(varName->list); }
基本的に、私は大規模なアプリケーションのデータ呼び出しを簡素化しようとしているので、これを行うことができます:
count($object);
それよりも
count($object->list);
リストはオブジェクトのリストになる可能性があるため、使用方法によっては、誰かが現在の方法でそれを行う必要がある場合、非常に厄介なステートメントになる可能性があります。
count($object->list[0]->list[0]->list);
だから、私はこれに似たものを作ることができます:
function count(a $object) {
count($object->list);
}
PHP の count が混合変数を受け入れることは知っているので、個々の型をオーバーライドできるかどうかはわかりません。