sql >> データベース >  >> RDS >> Mysql

PHPMySQLiOOPでの->と::の違い

    -> オブジェクトのメンバーを参照するときに使用されます。

    :: スコープ解決演算子 です。 クラスの静的メンバーを参照するために使用されます。

    次のクラスを検討してください:

    class FooBar {
        public static function fizz() {
            echo "Fizz";
        }
    
        public function buzz() {
            echo "Buzz";
        }
    }
    

    関数buzz()を呼び出します ->を使用する :

    $myFooBar = new FooBar();
    $myFooBar->buzz();
    

    ただし、 ::を使用します ファンクトンを呼び出すにはfizz() 、静的メンバー(呼び出されるクラスのインスタンスを必要としないメンバー)であるため:

    FooBar::fizz();
    

    また、静的の違いについて話している間 メンバーとインスタンス化 メンバーの場合、 $ thisは使用できません 静的内の現在のインスタンスを参照する メンバー。 自己を使用します 代わりに(先頭の $はありません )現在のクラス、または parent 親クラスを参照する場合、またはPHP 5.3.0を使用することに喜びがある場合は、静的 (これにより、静的バインディングの遅延が可能になります)。

    ドキュメントでは::を使用しています ヘッダーのクラス名はクラスのインスタンスではないため、クラス内の関数を参照します。同じ例を引き続き使用して、関数 buzz()を参照するドキュメントエントリ 次のヘッダーを使用します:

    FooBar::buzz
    

    ただし、ドキュメントで静的メンバーであると指定されていない限り、->を使用する必要があります それを呼び出すインスタンスで:

    $myFooBar = new FooBar();
    $myFooBar->buzz();
    


    1. 5成功したDBAのデータベース監視の習慣

    2. OracleでONCOMMITのトリガーを定義するにはどうすればよいですか?

    3. 修正:MariaDBの「information_schemaの不明なテーブル「ロケール」」

    4. PostgreSQL:コマンドラインからPostgreSQLデータベースを削除します