php関数の混乱と自治を理解する.

1830 ワード

php関数の混乱はずっと人に笑われて、英語が英語ではないようで、意図的に無意識のようで、いろいろな関数の名前.しかし、php関数は基礎の中の核心で、いくつかの関数を覚えていないで、仕事をするのはきっと楽ではありません.あなたは一度に脳を使いたいですか、それとも毎回どの関数を探していますか.知恵です.
しかし、phpバージョンの重畳更新に伴い、関数の問題は日増しに深刻になり、断片化し、断層化が深刻になった.即生亮何生喩ですか.これはphp開発グループの設計思考が欠けていることを示している.マイクロソフトのような遠見はなく、マイクロソフトのjavascript、C#、sqlは非常に展望性があり、様々な拡張が盛んに行われている.phpは弱くなった.
Javaに比べてphpは簡単で速いが、php開発チームがjavaの思考から飛び出したとは言えない.
1:関数の定義は混乱を返す.
phpは弱いタイプであるが、基礎の戻り値は実際には制御可能であるが、開発グループはstrposのようにしていないことは明らかである.例えば、検索ができないときはfalseに戻り、検索したのはtrueではない.これは困惑させ、各関数の使用方法と戻り値のタイプを覚える必要がある.実际には、统一された戻りタイプの値は非常に学ぶ価値があり、これはプログラムの后ろの判断に対して简単で、プログラムは多くの量などを采用すべきです==判断、非等ではありません!=判断に来て、非等判断は明らかにどれだけの状況があるかを把握することが難しい.
 
2:関数分散フラグメント.
多くの文字関数はstrで始まる、subで始まる、例外もある.shuffle(), str_shuffle()という2つの関数は、どのような役割を果たしているか一目で知ることができますか?shuffle関数は&array参照呼び出しである、成功時にTRUEに戻る、または失敗時にFALSEに戻る.配列パラメータについてfalseを返す場合がありますか?これらの関数の欠落はphperにインスピレーションを与え、関数を書き換える必要がある.
   
3:リロードできません.
phpの新しい機能をいくら増やしても、関数やクラスのリロード機能を開発するには及ばない.今では多くの人がcallを利用していますがuser_func_arrayが実現するのは、get_のような特別な完璧ではありません.defined_vars()どうやって?関数はまたローカル性を持っていて、これは関数の特性と衝突して、明らかに超グローバルです.
   
いくつかの特性を放棄した後、phpはすべての関数を完璧に書き換えることができる.例えば上のshuffle()、str_shuffle()関数をmax_にマージできますshuffle()は、パラメータが文字や配列を受信し、多態関数を実現することができる.文字クラスなどのすべての関数をstr_で再分類先頭、配列arr_プログラムの作成時にideヒントをより全面的にするためである.
 
個人的には、任意の関数を直接使用しないで、以下のコードのような呼び出し関数の仕事をすべて1つの中継関数で引き受けることをお勧めします.
 
define('FUC_STRLEN', 'strlen');

    //       ,         .
    function __(){
        $funage = func_get_args();
        $funname = $funage[0];
        unset($funage[0]);
        $fundata = call_user_func_array($funname, array_values($funage));
        return $fundata;
    }
    
    __(FUC_STRLEN, 'my string');